Project import
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4b1e2ba --- /dev/null +++ b/Makefile
@@ -0,0 +1,92 @@ +# +# Copyright (c) 2010-2011 Nest, Inc. +# All rights reserved. +# +# This document is the property of Nest. It is considered +# confidential and proprietary information. +# +# This document may not be reproduced or transmitted in any form, +# in whole or in part, without the express written permission of +# Nest. +# +# Description: +# This file is the makefile for the system call tracer (strace). +# + +BuildConfigSpecialized := No +BuildProductSpecialized := No + +include pre.mak + +PackageName := strace + +PackageExtension := tar.bz2 +PackageSeparator := - + +PackagePatchArgs := + +PackageArchive := $(PackageName).$(PackageExtension) +PackageSourceDir := $(PackageName)$(PackageSeparator)$(PackageVersion) + +PackageBuildMakefile = $(call GenerateBuildPaths,Makefile) + +CleanPaths += $(PackageLicenseFile) + +all: $(PackageDefaultGoal) + +# Generate the package license contents. + +$(PackageSourceDir)/COPYRIGHT: source + +$(PackageLicenseFile): $(PackageSourceDir)/COPYRIGHT + $(copy-result) + +# Extract the source from the archive and apply patches, if any. + +$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths) + $(expand-and-patch-package) + +# Prepare the sources. + +.PHONY: source +source: | $(PackageSourceDir) + +# Patch the sources, if necessary. + +.PHONY: patch +patch: source + +# Generate the package build makefile. + +$(PackageBuildMakefile): | $(PackageSourceDir) $(BuildDirectory) + $(Verbose)cd $(BuildDirectory) && \ + $(CURDIR)/$(PackageSourceDir)/configure \ + INSTALL="$(INSTALL) $(INSTALLFLAGS)" \ + CC="$(CC)" STRIP=$(STRIP) \ + --build=$(HostTuple) \ + --host=$(TargetTuple) \ + --prefix=/usr + +# Configure the source for building. + +.PHONY: configure +configure: source $(PackageBuildMakefile) + +# Build the source. + +.PHONY: build +build: configure + $(Verbose)$(MAKE) $(JOBSFLAG) -C $(BuildDirectory) all + +# Stage the build to a temporary installation area. + +.PHONY: stage +stage: build | $(ResultDirectory) + $(Verbose)$(MAKE) $(JOBSFLAG) -C $(BuildDirectory) DESTDIR=$(ResultDirectory) install + +clean: + $(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir) + $(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory) + $(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory) + +include post.mak
diff --git a/strace-4.5.20/AUTHORS b/strace-4.5.20/AUTHORS new file mode 100644 index 0000000..bbba831 --- /dev/null +++ b/strace-4.5.20/AUTHORS
@@ -0,0 +1 @@ +See the file CREDITS. Automake likes us to have this file called AUTHORS.
diff --git a/strace-4.5.20/COPYRIGHT b/strace-4.5.20/COPYRIGHT new file mode 100644 index 0000000..faaa2d8 --- /dev/null +++ b/strace-4.5.20/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$
diff --git a/strace-4.5.20/CREDITS b/strace-4.5.20/CREDITS new file mode 100644 index 0000000..1b6600f --- /dev/null +++ b/strace-4.5.20/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/strace-4.5.20/ChangeLog b/strace-4.5.20/ChangeLog new file mode 100644 index 0000000..9538df5 --- /dev/null +++ b/strace-4.5.20/ChangeLog
@@ -0,0 +1,595 @@ +2010-04-13 Dmitry V. Levin <ldv@altlinux.org> + + Prepare for 4.5.20 release + * NEWS: Update for 4.5.20 release. + * configure.ac: Version 4.5.20. + * debian/changelog: 4.5.20-1. + * strace.spec: 4.5.20-1. + +2010-04-13 Frederik Schüler <fs@debian.org> + + Update debian/* files for the upcoming release + * debian/control: update standards-version to 3.8.4. + * debian/rules: allow parallel building. + * debian/rules: comment out verbose build, only needed for debugging. + * debian/rules: clean up clean: target, dh_clean does most of the work + already. + * debian/rules: use *-stamp instead of stamp-*, so dh_clean can tidy + up for us. + +2010-04-13 Heiko Carstens <heiko.carstens@de.ibm.com> + + Fix s390 system call table list + * linux/s390/syscallent.h: Add the missing entries for preadv and + pwritev to the system call table list. + * linux/s390x/syscallent.h: Likewise. + +2010-04-07 Dmitry V. Levin <ldv@altlinux.org> + + Update linux/ioctlent.h + * linux/ioctlent.sh: Search in asm-generic directory as well. + * linux/ioctlent.h: Regenerated. + + Update linux/*/syscallent.h files to match Linux kernel v2.6.33 + * linux/alpha/syscallent.h: Add 47 hooks. + * linux/arm/syscallent.h: Update hooks for pselect6, ppoll, + epoll_pwait. Add 11 hooks. + * linux/bfin/syscallent.h: Update hooks for prctl, fallocate, + signalfd4, eventfd2, epoll_create1, dup3, pipe2, perf_event_open. + Hook up recvmmsg. + * linux/hppa/syscallent.h: Update hooks for signalfd4, eventfd2, + epoll_create1, dup3, pipe2, perf_event_open. + * linux/i386/syscallent.h: Fix syscall name for the kexec_load hook. + Add 5 hooks. + * linux/ia64/syscallent.h: Fix syscall name for the kexec_load hook. + Add 4 hooks. + * linux/m68k/syscallent.h: Add 50 hooks. + * linux/powerpc/syscallent.h: Fix hook for timerfd_create. Fix + 6 syscall names to match the kernel. Use sys_semop to parse semop. + Add 14 hooks. + * linux/s390/syscallent.h: Fix syscall name for the kexec_load hook. + Add 14 hooks. + * linux/s390x/syscallent.h: Likewise. + * linux/sh/syscallent.h: Add 13 hooks. + * linux/sh64/syscallent.h: Add 15 hooks. + * linux/sparc/syscallent.h: Add 22 hooks. + * linux/x86_64/syscallent.h: Add 5 hooks. + + Enhance recvmmsg parser + * net.c (sys_recvmmsg): Decode mmsghdr structure on exit from the + syscall. Decode timespec structure both on entrance and on exit. + +2010-04-07 Andreas Schwab <schwab@linux-m68k.org> + + Decode recvmmsg syscall + * net.c (do_msghr): New function to print struct msghdr. + (printmsghdr): Use it. + (printmmsghdr, sys_recvmmsg): New. + * linux/syscall.h: Declare sys_recvmmsg. + (SYS_sub_recvmmsg): Define. + (SYS_socket_nsubcalls): Bump. + * linux/sparc/syscall.h: Likewise. + * linux/arm/syscallent.h: Add sys_recvmmsg. + * linux/bfin/syscallent.h: Likewise. + * linux/i386/syscallent.h: Likewise. + * linux/m68k/syscallent.h: Likewise. + * linux/powerpc/syscallent.h: Likewise. + * linux/s390/syscallent.h: Likewise. + * linux/s390x/syscallent.h: Likewise. + * linux/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/ia64/syscallent.h: Adjust. + +2010-04-07 Dmitry V. Levin <ldv@altlinux.org> + + * strace.1: Fix quoting of hyphens and formatting of strace options. + + Split trace_syscall() for better readability + * syscall.c (trace_syscall): Split into trace_syscall_exiting() and + trace_syscall_entering(). + + Implement -C option to combine regular and -c output + * defs.h (cflag_t): New enum. + * strace.1: Document -C option. + * strace.c (cflag): Update type. + (main): Handle -C option. + (trace): Update use of cflag. + * count.c (count_syscall): Move clearing of TCB_INSYSCALL to ... + * syscall.c (trace_syscall): ... here. Update use of cflag. + Based on patch by Adrien Kunysz. + + Fix "make dist" regression introduced by commit v4.5.19-12-g5078770 + * Makefile.am (EXTRA_DIST): Rename linux/syscallent.h to linux/i386/syscallent.h + + * desc.c (sys_epoll_pwait): Fix output formatting bug. + + * desc.c (decode_select): Fix potential stack buffer overflow. + +2010-03-31 Dmitry V. Levin <ldv@altlinux.org> + + Fix msgsnd indirect ipccall decoding + This regression was introduced by commit v4.5.18-136-g783f5bc. + * ipc.c (tprint_msgsnd): Add and use "flags" argument. + (sys_msgsnd): Pass "flags" argument to tprint_msgsnd(). + Patch by Anton Blanchard. + +2010-03-23 Mark Wielaard <mjw@redhat.com> + + Hook up inotify_init1 open mode flags printer + * file.c [LINUX] (sys_inotify_init1): New function. + * linux/syscall.h: Declare new sys_inotify_init1 handler. + * linux/bfin/syscallent.h: Hook up new handler. + * linux/hppa/syscallent.h: Likewise. + * linux/i386/syscallent.h: Likewise. + * linux/x86_64/syscallent.h: Likewise. + +2010-03-09 Andreas Schwab <schwab@redhat.com> + + Avoid spurious error when checking for linux/netlink.h + * configure.ac: Include <asm/types.h> when checking for + linux/netlink.h. + +2010-02-23 Andreas Schwab <schwab@linux-m68k.org> + + Fix reporting signal mask by sigreturn on powerpc + * signal.c (sys_sigreturn) [POWERPC]: Skip dummy stack frame when + locating signal context. + +2010-02-09 David Daney <ddaney@caviumnetworks.com> + + Fix MIPS N32/N64 compile error + * syscall.c [LINUX_MIPSN32 || LINUX_MIPSN64] (syscall_enter): Pass + tcp->pid to ptrace(). + +2010-02-05 Chris Metcalf <cmetcalf@tilera.com> + + Add support for the TILE architecture + * configure.ac: Add TILE to the list of supported architectures. + * defs.h: Define TCB_WAITEXECVE for TILE. + * linux/tile/syscallent.h: New file. + * Makefile.am (EXTRA_DIST): Add linux/tile/syscallent.h + * process.c (change_syscall, struct_user_offsets): Add TILE support. + * syscall.c (get_scno, get_error, syscall_enter): Likewise. + * mem.c (mmap_flags, print_mmap): Add MAP_CACHE_xxx TILE extensions + support. + * signal.c (sigact_flags): Add SA_NOPTRACE. + (sys_sigreturn): Add TILE support. + +2010-02-04 Dmitry V. Levin <ldv@altlinux.org> + + Remove dead code + * defs.h (tv_tv): Remove. + * net.c (sys_xsetsockaddr): Remove commented out dead code. + * process.c (setarg, sys_execv, sys_execve, struct_user_offsets): + Likewise. + * signal.c (sys_sigsuspend): Likewise. + * strace.c (reaper, trace): Likewise. + * stream.c (internal_stream_ioctl): Likewise. + * syscall.c (trace_syscall): Likewise. + * term.c (term_ioctl): Likewise. + * util.c (tv_tv, umoven, uload, getpc, fixvfork, setbpt, clearbpt): + Likewise. + + Merge Linux internal_clone() into internal_fork() + * defs.h (internal_clone): Remove. + * process.c (internal_clone): Merge into internal_fork(). + (internal_fork) [!LINUX]: Remove dead code. + * syscall.c (internal_syscall): Replace internal_clone() with + internal_fork(). + + * Makefile.am (INCLUDES): Remove redundant search directories. + +2010-02-04 Frederik Schüler <fs@debian.org> + + Update debian/* files + * debian/control: add sparc64 to the architectures list. + This closes Debian bug #560062 + * Backport commit f0df31e71a58c6e79ba77c1a9d84b2f38d44bec7 to fix FTBFS. + This closes Debian bug #560516 + * debian/control: Update standards-version to 3.8.3. + * debian/control: Lower package priority to optional, matching + the archive override. + * debian/control: add ${misc:Depends} to Depends: lines where + appropriate. + * debian/watch: new file, allows automatic tracking of new + upstream versions. + * debian/source/format: new file, adapt to debian source format "quilt" + * debian/rules: indentation cleanups; use dh_testroot and dh_prep + in clean target. + +2010-01-25 Andreas Schwab <schwab@redhat.com> + + Fix spurious failure of AC_STAT64 test + * acinclude.m4 (AC_STAT64): Include <sys/types.h> first. + +2010-01-12 Andreas Schwab <schwab@redhat.com> + + Don't kill the process when detaching + * strace.c (detach): Call clearbpt when TCB_BPTSET is set. + +2009-12-25 Dmitry V. Levin <ldv@altlinux.org> + + Decode fifth argument of mremap syscall + * mem.c (sys_mremap): Decode fifth argument. + * linux/*/syscallent.h: Update the number of mremap syscall arguments. + +2009-12-24 Chris Metcalf <cmetcalf@tilera.com> + + * mem.c (sys_mbind): Display first argument in hex + + * mem.c (mremap_flags): Add MREMAP_FIXED + +2009-11-16 Mike Frysinger <vapier@gentoo.org> + + Move i386-specific files out of common linux dir + * linux/syscallent.h: Moved to ... + * linux/i386/syscallent.h: ... here. + * linux/ia64/syscallent.h: Update i386 syscallent.h include. + * linux/sparc/gen.pl: Likewise. + * linux/x86_64/syscallent1.h: Likewise. + +2009-11-16 Andreas Schwab <schwab@redhat.com> + + Remove support for pre-C89 + * defs.h: Remove references to __STDC__ and P macros. + * strace.c: Likewise. + +2009-11-13 Dmitry V. Levin <ldv@altlinux.org> + + Decode more SOL_PACKET socket options + * net.c (sockpacketoptions): Add more PACKET_* entries. + (sys_getsockopt): Decode PACKET_STATISTICS. + (printsockopt): Decode PACKET_RX_RING and PACKET_TX_RING. + Patch by Gabor Gombas. + +2009-11-11 Andreas Schwab <schwab@redhat.com> + + Ignore errors if a thread is killed + * util.c (clearbpt): Ignore ESRCH error. + +2009-11-06 Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> + + Fix handling of Linux systems without struct statfs64 + * acinclude.m4 (AC_STATFS64): New macro to check for struct statfs64. + * configure.ac: Call AC_STATFS64. + * file.c (printstatfs64, sys_statfs64, sys_fstatfs64): Compile only + if struct statfs64 is available. + +2009-11-06 Dmitry V. Levin <ldv@altlinux.org> + + Fix getsockopt decoding on architectures where sizeof(long) > sizeof(int) + * net.c (sys_getsockopt): Optimize output a bit. + Decode integer argument using printnum_int(), patch by Gabor Gombas. + + Check umove() return code + * bjm.c (sys_query_module): Print input parameters when entering + syscall. Fix handling of syscall error. Handle unlikely umove() + failures. + * ipc.c (tprint_msgrcv): New function. Move part of msgrcv parser code + here, add check umove() return code. + (sys_msgsnd): Print msqid parameter as int instead of long. + (sys_msgrcv): Likewise. Use tprint_msgrcv(). + * process.c (print_affinitylist): Check umove() return code. + * sock.c (sock_ioctl): Handle unlikely umove() failure in the + SIOCGIFCONF parser. + + Fix check for linux/netlink.h on Linux 2.6.32-rc5+ + * configure.ac (AC_CHECK_HEADERS): In check for linux/netlink.h, include + sys/socket.h instead of linux/socket.h beforehand. + +2009-11-04 Andreas Schwab <schwab@redhat.com> + + Decode fallocate on PowerPC + * linux/powerpc/syscallent.h: Decode fallocate. + + Factor out printing of 64bit syscall argument + * defs.h (ALIGN64): Remove. + (printllval): Declare. + * util.c (printllval): Define. + * file.c (sys_readahead): Use printllval. + (sys_lseek64): Likewise. + (sys_truncate64): Likewise. + (sys_ftruncate64): Likewise. + (sys_fadvise64): Likewise. + (sys_fadvise64_64): Likewise. + (sys_fallocate): Likewise. + * io.c (sys_pread): Likewise. + (sys_pwrite): Likewise. + (sys_pread64): Likewise. + (sys_pwrite64): Likewise. + * mem.c (sys_mmap64): Likewise. + +2009-11-03 Andreas Schwab <schwab@redhat.com> + + Correct decoding of readahead and fadvice64(_64) on PowerPC + * file.c (sys_readahead): Align 64bit argument. Handle PowerPC64 + like other 64bit architectures. + (sys_fadvise64): Likewise. + (sys_fadvise64_64): Handle PowerPC like ARM. + * linux/powerpc/syscallent.h (sys_readahead): Account for 64bit + argument alignment on PowerPC32. + +2009-10-27 Andreas Schwab <schwab@redhat.com> + + Maintain separate print column for each process + * defs.h (struct tcp): Add curcol. + * strace.c: (alloc_tcb): Initialize it. + (trace): Use curcol from current process and save it before + continuing. + (tprintf): Don't modify curcol on output error. + +2009-10-21 Roland McGrath <roland@redhat.com> + + * strace.spec: 4.5.19-1 release. + +2009-10-21 Dmitry V. Levin <ldv@altlinux.org> + + * file.c (printstat64): Cleanup trailing whitespace. + +2009-10-16 Andreas Schwab <schwab@redhat.com> + + Fix decoding of newfstatat syscall on x86-64 + * file.c (printstat64) [LINUX && X68_64]: If tracing a 64-bit + process redirect to printstat. + Fixes RH#529316 "Field values shown for "newfstatat" system + call are incorrect" + +2009-10-12 Dmitry V. Levin <ldv@altlinux.org> + + * configure.ac (AC_CHECK_HEADERS): Remove asm/reg.h. + +2009-10-12 Mike Frysinger <vapier@gentoo.org> + + sparc/linux: Rewrite to use asm/ptrace.h + The current sparc/linux code uses asm/reg.h, but recent Linux kernels + dropped that header completely. So switch over to the ptrace headers + as those should stick around indefinitely as part of the ABI. + + * defs.h [LINUXSPARC] (U_REG_G1, U_REG_O0, U_REG_O1): Define. + * process.c: Drop asm/regs.h include. + [SPARC || SPARC64] (change_syscall): Change struct regs to struct pt_regs. + * signal.c: Drop asm/regs.h include. + (m_siginfo_t): Unify [SPARC || SPARC64] and [MIPS]. + [SPARC || SPARC64] (sys_sigreturn): Change struct regs to struct pt_regs. + * syscall.c: Drop asm/regs.h include. + [SPARC || SPARC64] (internal_syscall, get_scno, get_error, force_result, + syscall_enter): Change struct regs to struct pt_regs. + * util.c: Drop asm/regs.h include. + (_hack_syscall5, _ptrace): Delete. + [SPARC || SPARC64] (getpc, printcall, arg_setup_state): Change + struct regs to struct pt_regs. + +2009-10-11 Roland McGrath <roland@redhat.com> + + * make-dist: Clean up. + + * configure.ac: Use AC_CONFIG_AUX_DIR([.]). + +2009-10-09 Dmitry V. Levin <ldv@altlinux.org> + + * make-dist: New script for preparing release tarballs. + + * git-set-file-times: Import from rsync. + + * Makefile.am [MAINTAINER_MODE]: Define and export TAR_OPTIONS. + +2009-10-08 Dmitry V. Levin <ldv@altlinux.org> + + Enhance msgsnd() parser + * ipc.c (tprint_msgsnd): New function. Move msgsnd parser code here, + add check for umove() return code. + (sys_msgsnd): Use tprint_msgsnd(). + + * NEWS: Update for 4.5.19 release. + + Enhance semop()/semtimedop() sembuf parser + * ipc.c (tprint_sembuf): New function. Move sembuf parser code here, + add abbrev() support. + (sys_semop, sys_semtimedop): Use tprint_sembuf(). + +2009-10-08 Jakub Bogusz <qboosh@pld-linux.org> + + Add pretty printing of sembuf argument to semop() and semtimedop() + * ipc.c (semop_flags): New xlat structure. + (sys_semop, sys_semtimedop): Add pretty printing of sembuf argument. + +2009-10-08 Mike Frysinger <vapier@gentoo.org> + + Add support for Linux/no-mmu with vfork + * configure.ac (AC_CHECK_FUNCS): Add fork. + * strace.c (strace_vforked): Define. + (startup_child): Do not raise SIGSTOP if vforked. + (trace): Skip first exec when starting up after vforked. + * syscall.c [BFIN] (get_scno): Drop waitexec checks. + + Avoid malloc(0) in getdents parsers + On end of directory, getdents returns 0. This return value is used to + then try and do malloc(0), but on some systems this will always return + NULL. Since the code won't read the pointer in question if len is 0, + then don't bother calling malloc(0) and set the pointer to NULL ourself. + * file.c (sys_getdents, sys_getdents64): Avoid malloc(0) call. + +2009-10-07 Mike Frysinger <vapier@gentoo.org> + + Add sys_nanosleep() prototype for sparc + * linux/sparc/syscall.h (sys_nanosleep): New prototype. + Reported by Frederik Schüler. + + Silence compiler warnings about implicit cast from pointer to integer + * util.c (do_ptrace): Cast ptrace() 4th arg to long. + (ptrace_restart): Drop void* cast on ptrace() 4th arg. + + Ignore .gdb files from FLAT toolchains + * .gitignore: Add /*.gdb. + + * configure.ac (AC_CHECK_FUNCS): Sort and expand. + + Blackfin: Update ioctl/syscall lists + * linux/bfin/ioctlent.h: Sync list with latest kernel sources. + * linux/bfin/syscallent.h: Likewise. + + ioctlsort: Check ppc hosts too + * linux/ioctlsort.c: Check for __powerpc__. + +2009-10-07 Andreas Schwab <schwab@redhat.com> + + Fix build on ia64 + * linux/ia64/syscallent.h: Update for addition of accept4 syscall + in ../syscallent.h. + +2009-10-07 Roland McGrath <roland@redhat.com> + + * strace.spec (%doc): Add ChangeLog-CVS. + + * Makefile.am (srpm): New phony target. + + * Makefile.am (EXTRA_DIST): Add ChangeLog. + ($(srcdir)/ChangeLog): New target, replaces gen-changelog phony target. + Put it inside [MAINTAINER_MODE]. + +2009-10-06 Dmitry V. Levin <ldv@altlinux.org> + + * NEWS: Update for 4.5.19 release. + +2009-10-05 Frederik Schüler <fs@debian.org> + + Prepare debian/* files for release + * debian/rules: Do not ship ChangeLog anymore. + * debian/control: Update to Debian standards version 3.8.1, and remove + Roland from the Maintainers list. This closes Debian bug #521458. + * debian/changelog: Document changes and prepare for release. + +2009-10-05 Dmitry V. Levin <ldv@altlinux.org> + + * defs.h [HPPA]: Lower MAX_ARGS from 32 to 6. + + * ipc.c [LINUX] (sys_shmat): HPPA does not use an IPC multiplexer. + Based on patch from Carlos O'Donell. + +2009-10-05 Carlos O'Donell <carlos@systemhalted.org> + + * linux/hppa/syscallent.h: Update syscalls. + Based on work by Kyle McMartin and Helge Deller. + + Fix SA_HANDLER function pointer comparisons for hppa + * signal.c (sys_sigaction): Cast SA_HANDLER function pointers to long. + (sys_rt_sigaction): Likewise. + +2009-10-05 Edgar E. Iglesias <edgar.iglesias@gmail.com> + + CRIS: Correct first argument to upeek() + This complements commit ea0e6e80260d2b1b7ad40282012b0e47869bcddf. + * syscall.c [CRISV10 || CRISV32] (syscall_fixup, syscall_enter): Pass + tcp pointer instead of pid to upeek(). + * util.c [CRISV10 || CRISV32] (printcall): Likewise. + +2009-10-05 Dmitry V. Levin <ldv@altlinux.org> + + * signal.c (do_signalfd): Fix typo in output format. + +2009-09-21 Dmitry V. Levin <ldv@altlinux.org> + + * Makefile.am (gen_changelog_start_date): Fix date. + +2009-09-19 Dmitry V. Levin <ldv@altlinux.org> + + Prepare for 4.5.19 release + * NEWS: Update for 4.5.19 release. + * configure.ac: Version 4.5.19. + * debian/changelog: 4.5.19-1. + * strace.spec: 4.5.19-1. + + Update debian/* to 4.5.18-1 + * debian/changelog: Update to 4.5.18-1. + * debian/compat: Set compatibility level to 7. + * debian/control (Build-Depends): Update debhelper requirement. + (strace, strace64): Add Section and Priority tags. + +2009-09-19 Kirill A. Shutemov <kirill@shutemov.name> + + Fix fadvise64 decoding on ARM + * file.c (sys_fadvise64_64) [ARM]: Fix argument ordering. + +2009-09-18 Dmitry V. Levin <ldv@altlinux.org> + + Fix follow fork/vfork on Linux ARM OABI + __NR_SYSCALL_BASE eis 0 for EABI and is 0x900000 for OABI. + * process (change_syscall) [LINUX && ARM]: Mask off the high order bits + when changing syscall. + + Reviewed-by: Kirill A. Shutemov <kirill@shutemov.name> + +2009-09-18 Mike Frysinger <vapier@gentoo.org> + + Mark shell scripts as executable + + Ignore ioctlsort helper program + * .gitignore: Add ioctlsort. + + linux/errno: Add ERFKILL + * linux/errnoent.h: Change ERRNO_132 to ERFKILL according to errno 132 + definition introduced in Linux 2.6.31. + +2009-09-01 Paolo Bonzini <pbonzini@redhat.com> + + Add accept4 socketcall + This second patch in the series adds support for accept4 as a socketcall + sub-call. Besides the need to renumber all system calls, this poses + no problem. + Tested on i686. + + * linux/arm/syscallent.h: Add accept4 socketcall. + * linux/m68k/syscallent.h: Likewise. + * linux/powerpc/syscallent.h: Likewise. + * linux/s390/syscallent.h: Likewise. + * linux/s390x/syscallent.h: Likewise. + * linux/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/syscallent.h: Likewise. + + * linux/sparc/syscall.h (SYS_sub_accept4): Declare. + (SYS_socket_nsubcalls): Update. + * linux/syscall.h: Likewise. + + Replace x86-64 paccept with accept4 + This patch changes the paccept syscall to accept4 for x86-64, since + the former was dropped in Linux kernel commit v2.6.27-rc7-14-g2d4c826. + At the same time, it adds support for pretty printing its arguments. + + * linux/x86_64/syscallent.h: Replace paccept with accept4, + hook in sys_accept4. + * net.c (sys_accept): Leave a small stub calling the new... + (do_accept): ... function, which also adds a flags_arg argument. + (sys_accept4): New. + +2009-08-28 Andreas Schwab <schwab@redhat.com> + + Zero-extend 32-bit addresses when printing argv array. + (printargv): Zero-extend 32-bit addresses. + Fixes RH#519480 "64-bit strace is lazy on execve of 32-bit + process". + +2009-08-12 Andreas Schwab <schwab@redhat.com> + + Add more futex decoding. + * process.c (FUTEX_WAIT_REQUEUE_PI, FUTEX_CMP_REQUEUE_PI) + (FUTEX_PRIVATE_FLAG, FUTEX_CLOCK_REALTIME): Define. + (futexops): Add entries for them. + (sys_futex): Decode FUTEX_CMP_REQUEUE_PI and + FUTEX_WAIT_REQUEUE_PI. + +2009-07-08 Dmitry V. Levin <ldv@altlinux.org> + + Generate ChangeLog from git log + * .gitignore: Add ChangeLog + * ChangeLog: Rename to ChangeLog-CVS. + * Makefile.am (gen-changelog): New rule. + (dist-hook): Depend on it. + (EXTRA_DIST): Add ChangeLog-CVS. + * README-hacking: Describe changes. + * gitlog-to-changelog: Import from gnulib. + + +See ChangeLog-CVS for older changes.
diff --git a/strace-4.5.20/ChangeLog-CVS b/strace-4.5.20/ChangeLog-CVS new file mode 100644 index 0000000..b5262ad --- /dev/null +++ b/strace-4.5.20/ChangeLog-CVS
@@ -0,0 +1,5614 @@ +2009-07-08 Dmitry V. Levin <ldv@altlinux.org> + + Clean up spacing to fix warnings reported by git diff --check. + * ChangeLog: Fix spaces before tab in indent. + * bjm.c: Likewise. + * debian/changelog: Likewise. + * strace-graph: Likewise. + * syscall.c: Likewise. + * INSTALL: Fix trailing blank lines. + * README-linux: Likewise. + * README-svr4: Likewise. + * linux/sparc/gen.pl: Likewise. + * linux/sparc/syscall1.h: Likewise. + * linux/sparc64/syscall1.h: Likewise. + * linux/x86_64/gentab.pl: Likewise. + * sunos4/syscall.h: Likewise. + * test/Makefile: Likewise. + * debian/rules: Fix trailing whitespaces. + * desc.c: Likewise. + * svr4/syscallent.h: Likewise. + * test/childthread.c: Likewise. + * test/leaderkill.c: Likewise. + +2009-07-07 Dmitry V. Levin <ldv@altlinux.org> + + * .cvsignore: Remove. + * README-CVS: Rename to README-hacking. + * Makefile.am (EXTRA_DIST): Remove README-CVS. + +2009-06-01 Dmitry V. Levin <ldv@altlinux.org> + + * bjm.c (sys_query_module): Fix format warning reported by + gcc -Wformat-security. + * file.c (tprint_open_modes): Likewise. + * process.c (printargv): Likewise. + * signal.c (printsignal): Likewise. + + Clean up header checks. + * configure.ac: Reformat AC_CHECK_HEADERS to keep it sorted and + easily updated, and reduce merging errors in the future. + * system.c: Convert all non-standard #ifdef checks for specific + headers to regular #ifdef HAVE_*_H checks. + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +2009-04-20 Denys Vlasenko <dvlasenk@redhat.com> + + * file.c (printstatsol, printstat_sparc64): + Remove NULL/error check for addr parameter. + (printoldstat, printstat, printoldstat64): + Move NULL/error check for addr parameter + so that it happens before printstatsol/printstat_sparc64 calls. + +2009-04-16 Denys Vlasenko <dvlasenk@redhat.com> + + * file.c (print_dirfd): Use int for file descriptor, not a long. + * process.c (printwaitn): Use int for PID, not a long. + +2009-04-15 Denys Vlasenko <dvlasenk@redhat.com> + + * signal (sys_rt_sigtimedwait): Fix sigtimedwait syscall decoding. + +2009-04-15 Denys Vlasenko <dvlasenk@redhat.com> + + * signal (sys_rt_sigaction): Print struct sigaction correctly + in 32/64 environment. + * desc.c (printflock): Add #ifdefs around earlier flock 32/64 fix + so that we don't waste time on arches with one personality. + +2009-04-14 Denys Vlasenko <dvlasenk@redhat.com> + + * signal.c: Whitespace, comment, and style fixes, no code changes. + * file.c: Ditto. + * time.c: Ditto. + * process.c: Ditto. + * resource.c: Ditto. + +2009-03-23 Denys Vlasenko <dvlasenk@redhat.com> + + * system.c (sram_alloc_flag): Add L2_SRAM constant. + by Mike Frysinger (vapier AT gentoo.org). + (sys_sram_alloc): Fix improperly used %zu: + tcp->u_arg is not a size_t, it is a long. + * net.c (printcmsghdr): Fix improperly used %zu: + struct cmsghdr::cmsg_len is not a size_t. + +2009-03-10 Denys Vlasenko <dvlasenk@redhat.com> + + Decode fcntl's F_{GET,SET}LEASE, F_NOTIFY, and F_DUPFD_CLOEXEC. + By Mike Frysinger (vapier AT gentoo.org) + * desc.c: Add F_SETLEASE, F_GETLEASE, F_NOTIFY, + F_DUPFD_CLOEXEC to fcntlcmds[]. Create notifyflags[] array. + (sys_fcntl): Handle new flags. + + Optimize printing of open modes. + * defs.h: Declare sprint_open_modes(), + remove unused parameter in tprint_open_modes(). + * desc.c (sprint_open_modes): Move fuction definition from here... + * file.c (sprint_open_modes): To here. + (tprint_open_modes): Use sprint_open_modes(), it already + generates needed string. + * ipc.c: Remove unused parameter from calls + to tprint_open_modes(). + +2009-02-27 Denys Vlasenko <dvlasenk@redhat.com> + + AVR32 support by Hans-Christian Egtvedt + (hans-christian.egtvedt AT atmel.com). + * configure.ac: Make it recognize avr32. + * defs.h: Define LINUX_AVR32. + * linux/avr32/syscallent.h: New file. + * Makefile.am: Reference linux/avr32/syscallent.h. + * proc.c (change_syscall, setarg): Add support for avr32. + (struct xlat struct_user_offsets[]): Ditto. + * syscall.c (get_scno): Ditto. + (get_error, force_result, syscall_enter): Ditto. + * util.c (getpc, printcall): Ditto. + +2009-02-25 Denys Vlasenko <dvlasenk@redhat.com> + + CRIS support by Hinko Kocevar (hinko.kocevar AT cetrtapot.si) + * configure.ac: Make it recognize cris. + * process.c: Define ARG_xxx constants for cris. + (change_syscall): Add support for cris. + (struct_user_offsets): Add cris-specific data. + * signal.c (sys_sigreturn): Add support for cris. + * syscall.c (get_scno): Add support for cris. + (syscall_fixup): Add support for cris. + (get_error): Add support for cris. + (syscall_enter): Add support for cris. + (force_result): While at it, fix cpp directives indentation. + * util.c (printcall): Add support for cris. + +2009-02-24 Denys Vlasenko <dvlasenk@redhat.com> + + * process.c: Indent preprocessor directives so that nesting + can be figured out. Add PTRACE_SET_SYSCALL to ptrace_cmds[]. + * ioctlent.sh: Improved by Mike Frysinger. + * HACKING-scripts: New file by Mike Frysinger. + +2009-02-20 Denys Vlasenko <dvlasenk@redhat.com> + + Further signalent.h cleanup. + * linux/ia64/signalent.h: Remove, it is identical to common signalent.h + sans "SIGRTnn" definitions which are redundant. + * linux/powerpc/signalent.h: Remove, it is identical to common signalent.h + sans outdated "SIGUNUSED" which should be "SIGSYS". + * linux/s390/signalent.h: Ditto. + * linux/s390x/signalent.h: Ditto. + * Makefile.am: Remove references to the above files. + +2009-02-20 Denys Vlasenko <dvlasenk@redhat.com> + + Patch by Mike Frysinger (vapier AT gentoo.org). + * linux/ioctlent.sh: Update sed machinery to parse _IOC() macros + with two constants. + +2009-02-20 Denys Vlasenko <dvlasenk@redhat.com> + + Patch by Mike Frysinger (vapier AT gentoo.org). + * Makefile.am: Remove reference to linux/sh/signalent.h. + * linux/sh/signalent.h: Remove, it is identical to common signalent.h. + +2009-02-20 Denys Vlasenko <dvlasenk@redhat.com> + + Patch by Mike Frysinger (vapier AT gentoo.org). + * linux/errnoent.h: Make ERRNO_58 show EDEADLOCK for POWERPC. + * Makefile.am: Remove reference to linux/powerpc/errnoent.h. + * linux/powerpc/errnoent.h: Remove, we can use common errnoent.h now. + +2009-02-20 Denys Vlasenko <dvlasenk@redhat.com> + + Patch by Mike Frysinger (vapier AT gentoo.org). + Removing redundant errnoent.h files. + * Makefile.am: Remove reference to linux/ia64/errnoent.h, + linux/s390/errnoent.h, linux/s390x/errnoent.h and linux/sh/errnoent.h. + * linux/ia64/errnoent.h: Remove, this arch uses common errnoent.h. + * linux/s390/errnoent.h: Ditto. + * linux/s390x/errnoent.h: Ditto. + * linux/sh/errnoent.h: Ditto. + +2009-02-10 Roland McGrath <roland@redhat.com> + + * configure.ac: Check for struct sigcontext. + * signal.c [LINUX] [M68K] (struct sigcontext): Don't define it if + [HAVE_STRUCT_SIGCONTEXT]. + From Muttley Meen <muttley.meen@gmail.com>. + +2009-02-09 Denys Vlasenko <dvlasenk@redhat.com> + + * defs.h: Correct the comment about TCB_SUSPENDED. + * strace.c: Fix misplaced #endif. + * util.c: Indent preprocessor directives, mark code parts + which can never be reached by compilation because of + the combination of #if directives. These are likely dead code, + I want to remove them later. + +2009-01-29 Denys Vlasenko <dvlasenk@redhat.com> + + * strace.c (newoutf): Prevent -o FILENAME overflowing the stack. + (startup_attach): Fix wrong pid in "Process <PID> attached". + (handle_group_exit): Do not consider exit to be spurious if + tcb has TCB_STARTUP bit set - we can attach to the task + right before its death, it can legitimately happen. + (handle_stopped_tcbs): Ditto. + +2009-01-26 Denys Vlasenko <dvlasenk@redhat.com> + + * process.c (printwaitn): Add comment about wait4() pid expansion. + Use #ifdef ALPHA instead of LINUX_64BIT, it was misleading + (by implying "any 64-bit platform"). + * defs.h: Remove now-unused LINUX_64BIT define. + * resource.c (sys_osf_getrusage): Fix indentation. + +2009-01-26 Denys Vlasenko <dvlasenk@redhat.com> + + * process.c (internal_clone): Fix fallout from tcb table expansion + simplification. Due to overlooked else, I forgot to group + fork_tcb(tcp) and alloctcb(pid) in a block. + +2009-01-23 Michal Nowak <mnowak@redhat.com> + + * syscall.c (get_scno): Fix warnings about unused variable 'pid'. + +2009-01-23 Michal Nowak <mnowak@redhat.com> + + * mem.c (print_ldt_entry): Fix warning: + Format '%#08lx' expects type 'long unsigned int', but + argument 2 was type 'unsigned int'. + +2009-01-17 Denys Vlasenko <dvlasenk@redhat.com> + + Two cleanups: tcb table expansion failure is not really a survivable + event, we do not have any viable way to continue. No wonder most + places where that is detected have FIXMEs. + It's way simpler to treat as fatal failure, and handle it inside + tcb table expansion finctions. + Second cleanup: tidy up haphazard locations of a few externs. + + * defs.h: Change return type of expand_tcbtab() to void. + Declare change_syscall(). + * process.c: Change all callsites of alloctcb(), alloc_tcb() and + fork_tcb(), removing now-redundant error checks. + (fork_tcb): Change return type to void - it can't fail now. + * strace.c: Move extern declarations out of function bodies. + Change all callsites of alloctcb(), alloc_tcb() and + fork_tcb(), removing now-redundant error checks. + (expand_tcbtab): Change return type to void - it can't fail now. + On failure to expand, print a message, clean up, and exit. + (alloc_tcb): On failure to expand, print a message, clean up, and exit. + * util.c (setbpt): Remove extern declaration from function body. + +2009-01-14 Denys Vlasenko <dvlasenk@redhat.com> + + * linux/bfin/syscallent.h: sys_futex has 6 parameters, not 5. + +2009-01-13 Denys Vlasenko <dvlasenk@redhat.com> + + Fixes for ptrace() argument parsing. + * process.c: Add parsing of PTRACE_SETOPTIONS, PTRACE_GETEVENTMSG, + PTRACE_GETSIGINFO, PTRACE_SETSIGINFO. + * defs.h: Declare several "extern const struct xlat" arrays here. + * desc.c: Remove open_mode_flags[] and open_access_modes[] + extern declarations. + * net.c: Remove open_mode_flags[] extern declaration. + * sock.c: Remove addrfams[] extern declaration. + * util.c: Remove struct_user_offsets[] extern declaration. + * signal.c: Remove open_mode_flags[] extern declaration. + +2009-01-06 Denys Vlasenko <dvlasenk@redhat.com> + + Output format fixes, improving the situation after recent + change which added beeter handling of processes suddenly + disappearing. Now we often do not finish last line + before exiting in those cases. + The only change affecting something other than output + is change in umovestr where we were calling + abort() on ptrace error. + + * strace.c (trace): If trace_syscall() failed with ESRCH, + finish current output line with " <unfinished ...>". + (mp_ioctl): While we are at it, fix gross style mismatch + in this function definition. No code chages. + * syscall.c (trace_syscall): If decode fails on syscall exit, + finish current output line with "= ? <unavailable>". + * util.c (umoven): Do not complain if error is ESRCH. + (umovestr): Do not complain and do not abort() if error is ESRCH. + * defs.h: Remove unused tcp parameter from printtrailer(). + * process.c: Adjust printtrailer() calls accordingly. + * strace.c: Adjust printtrailer() calls accordingly. + * syscall.c: Adjust printtrailer() calls accordingly. + +2009-01-06 Denys Vlasenko <dvlasenk@redhat.com> + + * desc.c (printflock): Fix display of fcntl(F_SETLK) on + non-native 32-bit architecture. + Fixes RH#471169 "format fcntl64() system calls for + 32 bit application incorrect". + * desc.c: const'ify two static struct xlat vector[]'s, + convert all remaining old style C parameter declarations + in this file. + +2008-11-13 Kirill A. Shutemov <kirill@shutemov.name> + + * linux/arm/syscallent.h: Update syscalls. + Based on patch by Enrico Scholz. + + * linux/arm/syscallent.h: Fix build on ARM EABI which does not + provide syscalls socketcall and ipc. + +2009-01-01 Andreas Schwab <schwab@suse.de> + + * net.c (sys_accept): Properly decode third argument as pointer to + int. + +2008-12-30 Denys Vlasenko <dvlasenk@redhat.com> + + Experimental support for -D option. + Unlike normal case, with -D *grandparent* process exec's, + becoming a traced process. Child exits (this prevents traced process + from having children it doesn't expect to have), and grandchild + attaches to grandparent similarly to strace -p PID. + This allows for more transparent interaction in cases + when process and its parent are communicating via signals, + wait() etc. Without -D, strace process gets lodged in between, + disrupting parent<->child link. + * strace.c: Add global flag variable daemonized_tracer for -D option. + (startup_attach): If -D, fork and block parent in pause(). + In this case we are already a child, we in fact created a grandchild. + After attaching to grandparent, grandchild SIGKILLs parent. + (startup_child): If -D, parent blocks in wait(), then + execs the program to strace. Normally (w/o -D), it is child + who execs the program. + (main): Detect -D option, call startup_attach() if it is given. + +2008-12-30 Kirill A. Shutemov <kirill@shutemov.name> + + Fix some warnings on ARM build. + * defs.h: include <sys/ptrace.h> on arm too. + * syscall.c: EABI arm does not need decode_subcall(), + ifdef it out. + +2008-12-29 Nick Black <dankamongmen@acm.org> + + * linux/syscallent.h: Mark sendfile(2) as network syscall. + * linux/*/syscallent.h: Same, for all architectures. + +2008-12-17 Denys Vlasenko <dvlasenk@redhat.com> + + Make strace detect when traced process suddenly disappeared + (prime example is randomly arriving SIGKILL). + * defs.h (do_ptrace, ptrace_restart): Declare new functions + * process.c: Use ptrace_restart instead of bare ptrace. + This catches and records ESRCH errors. + Print "<unavailable>" if syscall decode or result can't be + determined because of an earlier error in ptrace() + * syscall.c (trace_syscall): Stop indiscriminately bailing out + on errors, print "syscall(????" or even "????(????" but continue. + * util.c (do_ptrace, ptrace_restart): Define new functions. + (upeek): use do_ptrace in order to catch and record ESRCH. + Do not print error message in this case. + Fixes RH#472053. + +2008-12-17 Denys Vlasenko <dvlasenk@redhat.com> + + * signal.c (sys_sigaction, sys_rt_sigaction): Fix typo + in (sa_handler == SIG_IGN) comparison, it was using SIG_DFL + instead. + +2008-12-16 Denys Vlasenko <dvlasenk@redhat.com> + + * defs.h: Modify declaration of upeek to take struct tcb * + parameter instead of pid_t. + * process.c: Change all upeek calls accordingly. + * signal.c: Likewise. + * strace.c: Likewise. + * syscall.c: Likewise. + * util.c: Likewise. + +2008-11-11 Dmitry V. Levin <ldv@altlinux.org> + + * sock.c [LINUX] (sock_ioctl): Parse more SIOCS* ioctls. + +2008-12-09 Roland McGrath <roland@redhat.com> + + * strace.1 (DIAGNOSTICS): New section, describe exit behavior. + +2008-11-09 Dmitry V. Levin <ldv@altlinux.org> + + * process.c (prctl_options): Update constants from linux 2.6.27. + * system.c (capabilities): Add more capability values. + + * util.c (string_quote): Fix support for NUL-terminated string. + Add comments. + (printpathn): Fix the case when "..." was appended to the output + but no truncation was actually made. Add comments. + (printstr): Fix memory allocation. Fix two cases when "..." was + appended to the output but no truncation was actually made. + Add comments. + Fixes RH#470529. + +2008-10-23 Dmitry V. Levin <ldv@altlinux.org> + + Implement parsers for new linux syscalls. + * desc.c (do_dup2, [LINUX] sys_dup3): New functions. + (sys_dup2): Use do_dup2. + [LINUX] (sys_epoll_create1): New function. + [LINUX] (do_eventfd, sys_eventfd2): New functions. + [LINUX] (sys_eventfd): Use do_eventfd. + * net.c (do_pipe, [LINUX] sys_pipe2): New functions. + (sys_pipe): Use do_pipe. + * signal.c [LINUX] (do_signalfd, sys_signalfd4): New functions. + [LINUX] (sys_signalfd): Use do_signalfd. + * linux/syscall.h: Declare new sys_* functions. + * linux/syscallent.h: Hook up signalfd4, eventfd2, epoll_create1, + dup3, pipe2, inotify_init1. + * linux/x86_64/syscallent.h: Hook up paccept, signalfd4, eventfd2, + epoll_create1, dup3, pipe2, inotify_init1. + +2008-10-23 Mike Frysinger <vapier@gentoo.org> + + Port strace to the Blackfin architecture. + * configure.ac: Add bfin to supported architectures. + * process.c: Skip u_fpvalid/u_fpstate for Blackfin architecture. + (change_syscall): Support Blackfin architecture. + * syscall.c: Declare r0 for Blackfin architecture. + (get_scno): Decode Blackfin syscall number. + (syscall_fixup): Extract Blackfin return value. + (get_error): Decode Blackfin return value. + (force_result): Poke Blackfin return value. + (syscall_enter): Extract Blackfin syscall arguments. + * defs.h: Define TCB_WAITEXECVE for Blackfin architecture. + * linux/syscall.h (sys_sram_alloc): Declare for Blackfin + architecture. + * system.c (sys_sram_alloc): Decode Blackfin sram_alloc() syscall. + * util.c (getpc): Handle PC on Blackfin architecture. + (printcall): Likewise. + * linux/bfin/ioctlent.h, linux/bfin/syscallent.h: New Blackfin + headers. + * Makefile.am (EXTRA_DIST): Add linux/bfin/ioctlent.h and + linux/bfin/syscallent.h. + +2008-09-18 Mike Frysinger <vapier@gentoo.org> + + * configure.ac: Accept uclinux hosts as linux. + +2008-10-22 Dmitry V. Levin <ldv@altlinux.org> + + Handle socket type flags introduced in linux 2.6.27. + * net.c (socktypes): Add SOCK_DCCP. + (sock_type_flags): New xlat structure. + (tprint_sock_type): New function. + (sys_socket, sys_socketpair): Use it to parse socket type and + socket type flags. + +2008-09-29 Dmitry V. Levin <ldv@altlinux.org> + + * strace.c (startup_child): Save child pid for future use. + (main): Exit/kill ourself with straced child's exitcode/signal. + (trace): If signalled process pid matches the saved child pid, + save the signal number. If terminated process pid matches the + saved child pid, save its exit status. + Patch from Denys Vlasenko <dvlasenk@redhat.com> + Fixes RH#105371. + +2008-09-12 Tomas Pospisek <tpo@sourcepole.ch> + Jan Kratochvil <jan.kratochvil@redhat.com> + + * strace.1 (DESCRIPTION): New description of unfinished system calls + and system calls restarting. + +2008-09-03 Dmitry V. Levin <ldv@altlinux.org> + + * desc.c (sys_fcntl): Do not initialize auxstr for failed syscall. + * process.c (sys_fork, sys_rfork) [USE_PROCFS]: Likewise. + * signal.c (sys_signal): Likewise. + * stream.c (internal_stream_ioctl): Likewise. + * time.c (sys_adjtimex): Likewise. + * syscall.c (trace_syscall): If RVAL_STR is set, then + print auxstr for failed syscall as well. + + * syscall.c (is_restart_error): New function. + * defs.h (is_restart_error): Declare it. + + * linux/dummy.h (sys_nanosleep): Uncouple from sys_adjtime(). + * time.c (sys_nanosleep): New function, based on is_restart_error(). + + * process.c (sys_prctl): Decode PR_SET_PDEATHSIG, PR_GET_PDEATHSIG, + PR_SET_DUMPABLE, PR_GET_DUMPABLE, PR_SET_KEEPCAPS, PR_GET_KEEPCAPS. + Fix PR_GET_UNALIGN decoder. + (prctl_options): Add more constants. + + * linux/syscallent.h: Use sys_prctl() decoder for "prctl" syscall. + * linux/alpha/syscallent.h: Likewise. + * linux/arm/syscallent.h: Likewise. + * linux/m68k/syscallent.h: Likewise. + * linux/powerpc/syscallent.h: Likewise. + * linux/s390/syscallent.h: Likewise. + * linux/s390x/syscallent.h: Likewise. + * linux/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + * linux/x86_64/syscallent.h: Likewise. + +2008-09-02 Dmitry V. Levin <ldv@altlinux.org> + + * linux/x86_64/syscallent.h: Fix syscall numbers for "tee" and + "sync_file_range". + From Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp> + +2008-08-28 Roland McGrath <roland@redhat.com> + + * strace.1 (BUGS): New section, mention SIGTRAP interference. + + * strace.spec (%ifarch %{strace64_arches}): Use cp -p instead of ln + for %{rhel} < 6. + + * configure.ac, NEWS: Version 4.5.18. + * strace.spec: 4.5.18-1. + +2008-08-24 Roland McGrath <roland@redhat.com> + + * linux/syscall.h (SYS_socket_subcall et al, SYS_ipc_subcall et al): + Don't define these if [__ARM_EABI__]. + Reported by Johannes Stezenbach <js@sig21.net>. + + * syscall.c (trace_syscall): Conditionalize on [SYS_socket_subcall] + and [SYS_ipc_subcall] individually. + + * linux/powerpc/syscallent.h: Handle subpage_prot. + * mem.c [LINUX && POWERPC] (sys_subpage_prot): New function. + * linux/syscall.h [POWERPC]: Declare it. + From Simon Murray <simon@transitive.com>. + + * mem.c (mmap_prot): Handle PROT_SAO. + From Simon Murray <simon@transitive.com>. + + * mem.c (madvise_flags): Typo fixes. Rename to madvise_cmds. + (sys_madvise): Use printxval, not printflags. + Reported by Rajeev V. Pillai <rajeevvp@gmail.com>. + +2008-08-19 Roland McGrath <roland@redhat.com> + + * signal.c (sys_sigaction, sys_rt_sigaction): Don't omit the rest of + the struct after sa_handler is a known constant. Some sa_flags bits + have meaning even for SIG_IGN/SIG_DFL. + +2008-08-06 Jan Kratochvil <jan.kratochvil@redhat.com> + + * util.c (CLONE_VM): Define if not defined already. + (setbpt): Clear CLONE_VM in the case we already clear CLONE_VFORK for + SYS_clone and SYS_clone2. + Reported by Michal Nowak. + Fixes RH#455078. + +2008-08-06 Jan Kratochvil <jan.kratochvil@redhat.com> + + Fix compiler warnings. + * signal.c (sys_signal): Cast to SIG_* to the matching type LONG. + * strace.c (trace): Variables PSR and PC are now signed. + * syscall.c (syscall_enter): Variable RBS_END is now signed long. + Remove/add the RBS_END casts appropriately. + * util.c [IA64] (arg_setup): Variable BSP is now signed long. + Remove/add the BSP casts appropriately. + <ia32>: Initialize *STATE. + +2008-07-31 Roland McGrath <roland@redhat.com> + + * Makefile.am (EXTRA_DIST): Add new linux/arm/ files. + + * file.c [LINUX] (struct kernel_dirent): Define it locally, + do not use <linux/dirent.h>. + Fixes RH#457291. + + * configure.ac: Add AC_HEADER_STDBOOL. + * defs.h [HAVE_STDBOOL_H]: #include <stdbool.h>. + Fixes Debian#492774. + +2008-07-24 Dmitry V. Levin <ldv@altlinux.org> + + * strace.c (main): Fix -F option backwards compatibility. + +2008-07-22 Roland McGrath <roland@redhat.com> + + * Makefile.am (EXTRA_DIST): Add new debian/ files. + +2008-07-21 Roland McGrath <roland@redhat.com> + + * configure.ac: Version 4.5.17. + * strace.spec: 4.5.17-1. + + * defs.h [LINUXSPARC]: Don't #include <linux/a.out.h>. + +2008-07-19 Frederik Schüler <fs@debian.org> + + * debian/control: Add strace64 package. + * debian/rules: Use debhelper flag --same-arch instead of --arch in + order to build strace64 only on the specified architectures. + * debian/strace64.install: New file, list for dh_install. + * debian/strace64.manpages: New file, list for dh_install. + * debian/changelog: Add prereleases entries. + Fixes Debian#491167, Debian#491188. + +2008-07-18 Andreas Schwab <schwab@suse.de> + + * linux/ia64/syscallent.h: Decode mincore syscall. + + * linux/powerpc/syscallent.h: Fix argument count for request_key. + + * term.c (term_ioctl): Decode indirect parameter as int, not long. + +2008-07-17 Roland McGrath <roland@redhat.com> + + * NEWS, strace.spec: Updates in preparation for release. + + * process.c (printwaitn): When current personality's wordsize is + smaller than native, sign-extend the PID argument from 32 bits. + + * process.c (futexops): Update table. + (sys_futex): Handle FUTEX_WAIT_BITSET correctly. + From Ulrich Drepper <drepper@redhat.com>. + Fixes RH#448628. + + * linux/syscallent.h: Fix "futex" argument count. + * linux/alpha/syscallent.h: Likewise. + * linux/arm/syscallent.h: Likewise. + * linux/hppa/syscallent.h: Likewise. + * linux/ia64/syscallent.h: Likewise. + * linux/m68k/syscallent.h: Likewise. + * linux/powerpc/syscallent.h: Likewise. + * linux/s390/syscallent.h: Likewise. + * linux/s390x/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/x86_64/syscallent.h: Likewise. + From Ulrich Drepper <drepper@redhat.com>. + Fixes RH#448629. + + * signal.c (sigact_flags): Prefer SA_NODEFER to SA_NOMASK, + SA_RESETHAND to SA_ONESHOT. + Fixes RH#455821. + +2008-07-09 Frederik Schüler <fs@debian.org> + + * debian/rules: Remove the broken udeb creation routines, and redo the + complete install procedure using debhelper. + * debian/strace.docs: New file, list for dh_installdocs. + * debian/strace.examples: New file, list for dh_installexamples. + * debian/strace.install: New file, list for dh_install. + * debian/strace-udeb.install: New file, list for dh_install. + * debian/strace.manpages : New file, list for dh_installmanpages. + * debian/copyright: Update. + * debian/control: Fix libc6 build dependency for alpha and ia64. + (strace-udeb: XC-Package-Type): Add header. + * debian/changelog: Cosmetic changes. + +2008-07-03 Jan Kratochvil <jan.kratochvil@redhat.com> + + Trace vfork under -f on all the platforms. + * strace.1 <-f>: Describe Linux catches new children immediately. + <-F>: Make the option obsolete. Move the SunOS VFORK comment to the + `-f' option description. + * defs.h (followvfork): Declaration removed. + * strace.c (followvfork): Variable removed. + (main) <-F>: Merge with the `-f' option. + (trace): Make !FOLLOWVFORK unconditional. + * process.c (internal_fork): Make !FOLLOWVFORK unconditional. + +2008-07-01 Frederik Schüler <fs@debian.org> + + * debian/changelog: List all bugs closed since the last release. + * debian/control: Remove Wichert Akkerman from uploaders list. + * debian/control: Bump standards version to 3.8.0. + * debian/control: Add Homepage field. + * debian/rules: Fix dpkg-gencontrol call. + * debian/compat: New file, set to compatibility level 5. + * debian/rules: Call dh_clean on clean target. + * debian/rules: Add dh_md5sums call. + Fixes Debian#439428. + +2008-06-30 Jan Kratochvil <jan.kratochvil@redhat.com> + + Fix ia64 `-f' on clone2 formerly crashing the child. + * util.c [IA64] (restore_arg0, restore_arg1): Define as empty. + Fixes RH#453438. + +2008-06-27 Jan Kratochvil <jan.kratochvil@redhat.com> + + * util.c (CLONE_VFORK): Define if not defined already. + (setbpt): Clear CLONE_VFORK for SYS_clone and SYS_clone2. + Reported by Vitaly Mayatskikh. + Fixes RH#455078. + +2008-06-29 Dmitry V. Levin <ldv@altlinux.org> + + * linux/x86_64/syscallent.h: Remove duplicate syscall entries + for #283 and #284. + +2008-06-27 Jan Kratochvil <jan.kratochvil@redhat.com> + + * linux/syscallent.h: Remove a duplicite syscall stub #326. + +2008-05-27 Roland McGrath <roland@redhat.com> + + * syscall.c [LINUX] (is_negated_errno): New function. + (get_error) [LINUX]: Use it for all such cases. + Fixes RH#447587. + +2008-05-19 Roland McGrath <roland@redhat.com> + + * linux/x86_64/syscallent.h: Update entries for timerfd_* and fallocate. + + * file.c (sys_fallocate): New function. + * linux/syscall.h: Declare it. + * linux/syscallent.h: Update entry. + From Kyle McMartin <kyle@mcmartin.ca>. + + * time.c (sys_timerfd_create): New function. + (sys_timerfd_settime, sys_timerfd_gettime): New functions. + * linux/syscall.h: Declare them. + * linux/syscallent.h: Update entries for those syscalls. + From Kyle McMartin <kyle@mcmartin.ca>. + + * debian/rules (binary-arch): Fix chmod/chown typo. + Fixes Debian#459255. + + * debian/rules (binary-arch): Install strace-graph in examples/ + directory under package doc. + Fixes Debian#469068. + + * signal.c (sys_kill): When current personality's wordsize is smaller + than native, sign-extend the PID argument from 32 bits. + Fixes RH#430585. + + * configure.ac: Add check for struct sigcontext_struct in <signal.h>. + * signal.c [! HAVE_ASM_SIGCONTEXT_H] [I386] (struct sigcontext_struct): + Conditionalize definition on !HAVE_STRUCT_SIGCONTEXT_STRUCT. + Fixes Debian#456879. + + * util.c [LINUX] (setbpt): Use correct SYS_clone number for current + personality. + Fixes RH#447475. + +2008-05-08 David S. Miller <davem@davemloft.net> + + * syscall.c (socket_map, sparc_socket_decode): Delete. + (trace_syscall): Use common socketcall and ipc subcall + support on sparc. + * linux/sparc/syscall.h (sys_semtimedop): Declare. + (SYS_socket_subcall, SYS_sub_socket, SYS_sub_bind, + SYS_sub_connect, SYS_sub_listen, SYS_sub_accept, + SYS_sub_getsockname, SYS_sub_getpeername, + SYS_sub_socketpair, SYS_sub_send, SYS_sub_recv, + SYS_sub_sendto, SYS_sub_recvfrom, SYS_sub_shutdown, + SYS_sub_setsockopt, SYS_sub_getsockopt, SYS_sub_sendmsg, + SYS_sub_recvmsg, SYS_socket_nsubcalls, SYS_ipc_subcall, + SYS_sub_semop, SYS_sub_semget, SYS_sub_semctl, + SYS_sub_semtimedop, SYS_sub_msgsnd, SYS_sub_msgrcv, + SYS_sub_msgget, SYS_sub_msgctl, SYS_sub_shmat, + SYS_sub_shmdt, SYS_sub_shmget, SYS_sub_shmctl, + SYS_ipc_nsubcalls): Define + * linux/sparc/syscallent.h: Add socketcall and ipc entries. + +2008-01-25 Bruna Moreira <bruna.moreira@indt.org> + + * defs.h [ARM]: Define SUPPORTED_PERSONALITIES to 2. + * syscall.c (get_scno) [ARM]: Add support for architecture specific + syscalls. + * linux/arm/syscallent.h: Update network syscalls list. + * linux/arm/syscallent1.h: New file. Add new architecture specific + syscalls. + * linux/arm/errnoent1.h: New file. + * linux/arm/ioctlent1.h: New file. + * linux/arm/signalent1.h: New file. + Fixes Debian#441000. + +2008-01-07 Paul Mundt <lethal@linux-sh.org> + + * linux/sh64/syscallent.h: Update numerous calls, fix others. + +2007-08-26 Daniel Jacobowitz <dan@codesourcery.com> + + * defs.h [MIPS]: Include <sgidefs.h>. + (MAX_QUALS): Update for MIPS. + (LINUX_MIPSO32, LINUX_MIPSN32, LINUX_MIPSN64, LINUX_MIPS64): Define. + (struct tcb): Add ext_arg for MIPS N32. + (TCB_WAITEXECVE): Define for MIPS. + (ALIGN64): Use LINUX_MIPSO32. + * file.c (sys_lseek): Use ext_arg for MIPS N32. + (sys_readahead, sys_fadvise64_64): Likewise. + * io.c (sys_pread64, sys_pwrite64): Likewise. + * mem.c (print_mmap): Take OFFSET argument. + (sys_old_mmap): Update call to print_mmap. + (sys_mmap): Use ext_arg for MIPS N32. + * process.c (struct_user_offsets): Add MIPS registers. + * signal.c (sys_sigreturn): Handle MIPS N32 and MIPS N64. Correct + MIPS O32 call to sprintsigmask. + * syscall.c (internal_syscall): Handle MIPS N32. Check for + TCB_WAITEXECVE on MIPS. + (force_result): Add a comment about MIPS N32. + (syscall_enter): Handle MIPS N32 and MIPS N64. + * linux/syscall.h (sys_pread64, sys_pwrite64): Declare. + * linux/mips/syscallent.h: Include "dummy.h". Handle alternate + MIPS ABIs. + +2008-04-19 Dmitry V. Levin <ldv@altlinux.org> + + * file.c [_LFS64_LARGEFILE] (sys_getdents64): Do the same + d_reclen check as in sys_getdents: warn if d_reclen is 0 rather + than looping forever. + [FREEBSD] (sys_getdirentries): Likewise. + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + + * file.c [LINUXSPARC] (printstatsol): Fix sprinttime() + invocation. The sprinttime() function takes a time_t argument, + but timestruct_t argument was given. + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + + * file.c (sprinttime): Check localtime() return value, to avoid + potential NULL dereference due to invalid time structures. + Signed-off-by: Harald van Dijk <truedfx@gentoo.org> + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + + * linux/errnoent.h: Update errno list based on latest + linux/errno.h and asm-generic/errno*.h files. + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + + * signalent.sh: Fix sort(1) old-style options. + * syscallent.sh: Likewise. + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + + * count.c (call_summary_pers): Check calloc() return value. + Signed-off-by: "Yang Zhiguo" <yzgcsu@cn.fujitsu.com> + +2008-03-26 Roland McGrath <roland@redhat.com> + + * strace.spec (strace64_arches): Add sparc64. + +2007-11-20 Roland McGrath <roland@redhat.com> + + * CREDITS, ChangeLog: Converted contents to UTF8. + +2007-11-19 Roland McGrath <roland@redhat.com> + + * strace.spec: Add BuildRequires on libaio-devel, libacl-devel. + +2007-11-19 Andreas Schwab <schwab@suse.de> + + * process.c (sys_ptrace) [IA64]: For PTRACE_PEEKDATA, + PTRACE_PEEKTEXT and PTRACE_PEEKUSER the data is returned directly. + + * linux/syscallent.h: Fix argument count for getdents64. + * linux/arm/syscallent.h: Likewise. + * linux/m68k/syscallent.h: Likewise. + * linux/x86_64/syscallent.h: Likewise. + + * linux/ia64/syscallent.h: Use sys_getdents64. + * linux/sh/syscallent.h: Likewise. + +2007-11-06 Jan Kratochvil <jan.kratochvil@redhat.com> + + * strace.c [LINUX] (droptcb): Recurse on TCP->parent if it is a + TCB_EXITING zombie group leader. + * test/childthread.c: New file. + * test/.cvsignore, test/Makefile: Add it. + Code advisory: Roland McGrath + Fixes RH#354261. + +2007-11-03 Roland McGrath <roland@redhat.com> + + * process.c (prctl_options): Add numerous constants. + From Sami Farin <safari@u.safari.iki.fi>. + Fixes RH#364401. + +2007-11-03 Jan Kratochvil <jan.kratochvil@redhat.com> + + * strace.c (main): Move the STARTUP_CHILD call before setting up the + signal handlers. New comment about the valid internal states. + +2007-11-02 Thiemo Seufer <ths@networkno.de> + + * signal.c (m_siginfo_t): Add for MIPS. + (sys_sigreturn): struct sigcontext on MIPS has no sigset_t member, + acquire the signal mask with the same trick as on Sparc. + Fixes Debian#448802. + +2007-11-01 Roland McGrath <roland@redhat.com> + + * util.c (string_quote): Return nonzero if the string was unterminated. + (printstr): Use that value instead of just our own test. + (printpathn): Likewise. + Fixes RH#358241. + + * linux/mips/syscallent.h: Fix argument count for fadvise64_64. + From Paul Mundt <lethal@linux-sh.org>. + + * linux/mips/syscallent.h: Fix argument count for lookup_dcookie. + From Paul Mundt <lethal@linux-sh.org>. + + * linux/sh64/syscallent.h: Fix SYS_socket_subcall check. + From Paul Mundt <lethal@linux-sh.org>. + + * linux/sh/syscallent.h: Update numerous calls. + From Paul Mundt <lethal@linux-sh.org>. + +2007-09-22 Dmitry V. Levin <ldv@altlinux.org> + + * desc.c (sys_pselect6): Decode signal mask when entering syscall. + Relax signal mask size check. + + * time.c (print_timespec, sprint_timespec): New functions. + * defs.h (print_timespec, sprint_timespec): Declare them. + * desc.c (sys_io_getevents): Use print_timespec. + * stream.c (sys_ppoll): Likewise. + (decode_poll): Use sprint_timespec. + +2007-09-22 Alan Curry <pacman@world.std.com> + Dmitry V. Levin <ldv@altlinux.org> + + * stream.c (decode_poll): Rearrange so that arguments are decoded + and printed on syscall entry, except for revents and the output + timespec which are now printed in the auxstr. + (sys_poll): Print the input timeout argument on syscall entry. + [LINUX] (sys_ppoll): Likewise. + Fixes Debian#369651. + +2007-09-22 Dmitry V. Levin <ldv@altlinux.org> + + * desc.c (sprintflags): Remove static qualifier, add "prefix" + argument, move function to ... + * util.c (sprintflags): ... here. + * defs.h (sprintflags): Declare it. + +2007-11-01 Roland McGrath <roland@redhat.com> + + * syscall.c (get_scno) [ARM]: Check TCB_WAITEXECVE. + Reported by Bernhard Fischer <rep.dot.nop@gmail.com>. + + * net.c (sockpacketoptions): Make PACKET_ADD_MEMBERSHIP and + PACKET_DROP_MEMBERSHIP conditional. + From Bernhard Fischer <rep.dot.nop@gmail.com>. + + * configure.ac: Match sh64* for SH64, sh* for SH. + Reported by Bernhard Fischer <rep.dot.nop@gmail.com>. + +2007-10-01 Dmitry V. Levin <ldv@altlinux.org> + + * net.c (printsock): Output AF_UNIX socket address using + printpathn() to avoid unprintable characters in output. + Suggested by Neil Campbell. + +2007-10-01 Dmitry V. Levin <ldv@altlinux.org> + + * util.c (string_quote): Move quoting code from ... + (printstr) ... here. Use string_quote. + (printpathn): Update for new string_quote interface. + (printpath): Use printpathn. + +2007-09-25 Dmitry V. Levin <ldv@altlinux.org> + + * strace.c (main): Use calloc for tcbtab allocation. + Check calloc return value. + Reported by Bai Weidong. + +2007-09-11 Roland McGrath <roland@redhat.com> + + * linux/sparc/syscall.h: Add missing decls. + * linux/sparc/syscallent.h: Correct entries for setgroups32, + getgroups32, sys_getdents64. + From Jakub Bogusz <qboosh@pld-linux.org>. + + * linux/alpha/syscallent.h: Correct entries for madvise, setresgid, + getresgid, pivot_root, mincore, pciconfig_iobase, getdents64. + From Jakub Bogusz <qboosh@pld-linux.org>. + + * linux/syscallent.h: Fix getegid32 entry. + From Jakub Bogusz <qboosh@pld-linux.org>. + + * defs.h [LINUXSPARC]: Use asm/psrcompat.h for [SPARC64], not asm/psr.h. + From Jakub Bogusz <qboosh@pld-linux.org>. + + * mem.c (sys_getpagesize): Define for [SPARC || SPARC64] too. + From Jakub Bogusz <qboosh@pld-linux.org>. + +2007-08-20 Dmitry V. Levin <ldv@altlinux.org> + + * syscall.c (qual_syscall, qualify): Fix nsyscalls and MAX_QUALS misuse. + Reported by Xiaoning Ding. + +2007-08-06 Jan Kratochvil <jan.kratochvil@redhat.com> + Roland McGrath <roland@redhat.com> + + * file.c [!HAVE_STAT64 && LINUX && X86_64] (struct stat64): Define it. + [!HAVE_STAT64 && LINUX && X86_64] (HAVE_STAT64, STAT64_SIZE): Define. + [HAVE_STAT64] (printstat64) [STAT64_SIZE]: Add compile-time assertion. + Fixes RH#222275. + + * file.c (printstat64): Test [HAVE_LONG_LONG] for st_size printing + and cast to widest type available. + +2007-08-03 Ulrich Drepper <drepper@redhat.com> + + * file.c (open_mode_flags): Add O_CLOEXEC. + * net.c (msg_flags): Add MSG_CMSG_CLOEXEC. + Fixes RH#365781. + +2007-08-03 Roland McGrath <roland@redhat.com> + + * configure.ac, NEWS: Version 4.5.16. + * debian/changelog, strace.spec: 4.5.16-1. + + * debian/control (Build-Depends): Replace libc6-dev-s390x and + libc6-dev-sparc64 with gcc-multilib. + * debian/rules: Replace sparc-linux, s390-linux conditionals with + general "arch64_map" hair, handle x86_64 and powerpc64 too. + From Matthias Klose <doko@cs.tu-berlin.de>. + Fixes Debian#435303. + +2007-08-02 Jan Kratochvil <jan.kratochvil@redhat.com> + + * strace.c (detach): Moved the resume notification code to ... + (resume_from_tcp): ... a new function here. + (handle_group_exit): No longer detach also the thread group leader. + (trace): Fixed panic on exit of the TCB_GROUP_EXITING leader itself. + Fixes RH#247907. + + * test/leaderkill.c (start): Renamed to ... + (start0): ... here. + (start1): New function. + (main): Created a new spare thread. + +2007-08-01 Roland McGrath <roland@redhat.com> + + * util.c (umoven): Don't perror for EIO. + (umovestr): Likewise. + + * process.c (printargv): Handle boundary cases correctly. + Handle biarch fetching correctly. + + * util.c (printstr): Don't print ... if the string matches the length + limit exactly. + + * linux/sparc64/syscallent.h: Just #include the sparc file. + * linux/sparc64/syscallent1.h: Likewise. + * linux/sparc64/syscallent2.h: Likewise. + + * linux/arm/syscallent.h: Add entry for getcpu. + * 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/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + + * linux/arm/syscallent.h: Add entry for eventfd. + * 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/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + + * linux/arm/syscallent.h: Add entry for timerfd. + * 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/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + + * linux/arm/syscallent.h: Add entry for signalfd. + * 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/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + + * linux/hppa/syscallent.h: Add entry for epoll_pwait. + * 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/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + +2007-07-23 Ulrich Drepper <drepper@redhat.com> + + * process.c (sys_getcpu): New function. + * linux/syscall.h: Declare sys_getcpu. + * linux/syscallent.h: Add entry for getcpu. + + * desc.c (sys_eventfd): New function. + * linux/syscall.h: Declare sys_eventfd. + * linux/syscallent.h: Add entry for eventfd. + * linux/x86_64/syscallent.h: Likewise. + + * time.c (printitv_bitness): Add missing braces to enclose + conditional code. + (TDF_TIMER_ABSTIME): Define if not already. + (timerfdflags): New variable. + (sys_timerfd): New function. + * linux/syscall.h: Declare sys_timerfd. + * linux/syscallent.h: Add timerfd entry. + * linux/x86_64/syscallent.h: Likewise. + + * linux/syscall.h: Declare sys_signalfd. + * linux/syscallent.h: Add entry for signalfd. + * linux/x86_64/syscallent.h: Likewise. + * signal.c (sys_signalfd): New function. + + * desc.c (sys_epoll_wait): Move body of function to ... + (epoll_wait_common): ...here. New function. + (sys_epoll_pwait): New function. + * linux/syscall.h: Declare sys_epoll_pwait. + * linux/syscallent.h: Add entry for epoll_pwait. + * linux/x86_64/syscallent.h: Likewise. + +2007-07-23 Roland McGrath <roland@redhat.com> + + * time.c (printtv_bitness): SPECIAL only counts when tv_sec == 0. + + * linux/arm/syscallent.h: Add move_pages. + * linux/hppa/syscallent.h: Likewise. + * linux/ia64/syscallent.h: Likewise. + * linux/m68k/syscallent.h: Likewise. + * linux/mips/syscallent.h: Likewise. + * linux/powerpc/syscallent.h: Likewise. + * linux/s390/syscallent.h: Likewise. + * linux/s390x/syscallent.h: Likewise. + * linux/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + + * linux/syscallent.h: move_pages takes 6 args, not 5. + * linux/x86_64/syscallent.h: Likewise. + +2007-07-23 Ulrich Drepper <drepper@redhat.com> + + * defs.h: Add new parameter to printtv_bitness prototype. + (printttv): Pass zero for the new parameter. + (printtv_special): New macro. + * desc.c (decode_select): Pass zero for the new parameter of + printtv_bitness. + * file.c (utimensatflags): New macro. + (sys_osf_utimes): Pass zero for the new parameter of + printtv_bitness. + (sys_utimes): Likewise. + (sys_futimesat): Likewise. + (decode_utimes): Add new parameter. Pass it to the + printtv_bitness calls. Fix printing of time values. + (sys_utimensat): New function. + * time.c (UTIME_NOW, UTIME_OMIT): Define if not already + happened. + (printtv_bitness): Add new parameter. Print special UTIME_* + values as strings if set. + (sys_osf_gettimeofday): Pass zero for the new parameter of + printtv_bitness. + (sys_osf_settimeofday): Likewise. + * linux/syscall.h: Declare sys_utimensat. + * linux/syscallent.h: Add utimensat entry. + * linux/x86_64/syscallent.h: Likewise. + + * mem.c (move_pages_flags): New variable. + (sys_move_pages): New function. + * linux/syscall.h: Declare sys_move_pages. + * linux/syscallent.h: Add entry for sys_move_pages. + * linux/x86_64/syscallent.h: Likewise. + + * mem.c (MPOL_MF_MOVE, MPOL_MF_MOVE_ALL): Define. + (mbindflags): Add MPOL_MF_MOVE and MPOL_MF_MOVE_ALL entries. + +2007-07-23 Roland McGrath <roland@redhat.com> + + * util.c (tv_add): Fix rounding comparison. + Reported by Bai Weidong <baiwd@cn.fujitsu.com>. + +2007-07-11 Roland McGrath <roland@redhat.com> + + * count.c (call_summary_pers): Use tv_float conversion for output of + cumulative time, in case it is negative from bogus -O value. + From Lai JiangShan <laijs@cn.fujitsu.com>. + + * strace.c (handle_group_exit): Detach TCP before LEADER. + Don't use PTRACE_KILL on LEADER. + + * util.c (printstr): Fix size calculation for outstr allocation. + + * configure.ac (struct sigcontext.sc_hi2): Use #ifdef around + <asm/sigcontext.h> to match signal.c include conditions. + +2007-07-05 Roland McGrath <roland@redhat.com> + + * debian/rules: Use debian/$(package) instead of debian/tmp as temp dir. + + * configure.ac: Use <stddef.h> before <linux/socket.h>. + + * debian/changelog: Harmonize with debian version. + * debian/control (Uploaders): Fix surname spelling. + (Build-Depends): Make debhelper requirement (>= 5.0.0). + (Standards-Version): Update to 3.7.2. + + * .cvsignore: Add some automake-created files. + + * file.c (sys_utime): Use personality_wordsize to handle biarch. + Fixes RH#247185. + + * signal.c (sys_sigreturn) [MIPS]: Pass 3rd arg to sprintsigmask. + From Zhang Le <zhilg@users.sourceforge.net>. + + * strace.c (strace_fopen): [_LFS64_LARGEFILE]: Use fopen64. + Fixes Debian#385310. + + * strace.c (main): Fix error message for unfound -u user. + From Srinivasa Ds <srinivasa@in.ibm.com>. + Fixes RH#247170. + + * debian/control (Architecture): Add armel. + + * linux/syscallent.h: Fix sys_delete_module arg count. + * linux/alpha/syscallent.h: Likewise. + * linux/arm/syscallent.h: Likewise. + * linux/hppa/syscallent.h: Likewise. + * linux/ia64/syscallent.h: Likewise. + * linux/m68k/syscallent.h: Likewise. + * linux/mips/syscallent.h: Likewise. + * linux/powerpc/syscallent.h: Likewise. + * linux/s390/syscallent.h: Likewise. + * linux/s390x/syscallent.h: Likewise. + * linux/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + * linux/sparc64/syscallent2.h: Likewise. + * linux/x86_64/syscallent.h: Likewise. + * linux/dummy.h (sys_delete_module): Use sys_open. + From Johannes Stezenbach <js@linuxtv.org>. + + * configure.ac: Check for struct sigcontext.sc_hi2. + * signal.c (sys_sigreturn) [MIPS]: Use sc_hi2 vs sc_sigset if found. + + * process.c [LINUX] (futexops): Add many new values. + [LINUX] (futexwakeops, futexwakecmps): New tables. + [LINUX] (sys_futex): Use them. + From Ulrich Drepper <drepper@redhat.com>. + Fixes RH#241467. + +2007-07-05 Jan Kratochvil <jan.kratochvil@redhat.com> + + * strace.c (detach): New prototype. Extended the function comment. + [LINUX] (detach): Call droptcb() instead of the wrongly parametrized + detach() call. + (handle_group_exit): Call droptcb() instead of the wrongly parametrized + detach() call. Always call detach() only once from the group leader. + Comment the leader killing known bug tested by `test/leaderkill.c'. + Code advisory: Roland McGrath + Fixes RH#240961. + + * test/leaderkill.c: New file. + * test/.cvsignore, test/Makefile: Add it. + +2007-03-21 Andreas Schwab <schwab@suse.de> + + * file.c (sys_newfstatat): Don't use printstat64 on ppc64. + +2007-03-29 Vladimir Nadvornik <nadvornik@suse.cz> + Dmitry V. Levin <ldv@altlinux.org> + + Trace linux SG_IO ioctl arguments and results. + * scsi.c: New file. + * Makefile.am (strace_SOURCES): Add it. + * defs.h (scsi_ioctl): New function. + * ioctl.c (ioctl_decode): Use scsi_ioctl(). + +2007-06-28 Dmitry V. Levin <ldv@altlinux.org> + + * util.c (tv_mul): Multiply tv_usec properly. + Patch from Cai Fei <caifei@cn.fujitsu.com>. + +2007-06-11 Jan Kratochvil <jan.kratochvil@redhat.com> + + Never interrupt when the attached traced process would be left stopped. + * strace.c (main): `-p' attaching moved to ... + (startup_attach): ... a new function, renamed a variable C to TCBI. + Block interrupting signals since the first tracee has been attached. + New comment about INTERRUPTED in the nonthreaded case. + [LINUX] (startup_attach): Check INTERRUPTED after each attached thread. + (main): Command spawning moved to ... + (startup_child): ... a new function, replaced RETURN with EXIT. + [LINUX] (detach): New variable CATCH_SIGSTOP, do not signal + new SIGSTOP for processes still in TCB_STARTUP. + (main): Move signals and BLOCKED_SET init before the tracees attaching, + [SUNOS4] (trace): Removed fixvfork () call as a dead code, SIGSTOP must + have been already caught before clearing TCB_STARTUP. + (trace): Removed the `!WIFSTOPPED(status)' dead code. + Clear TCB_STARTUP only in the case the received signal was SIGSTOP. + New comment when `TCB_BPTSET && TCB_STARTUP' combination can be set. + Code advisory: Roland McGrath + Fixes RH#240986. + +2007-05-24 Jan Kratochvil <jan.kratochvil@redhat.com> + + * strace.c [LINUX] (my_tgkill): New macro. + [LINUX] (detach): Use my_tgkill () instead of kill(2). + Fixes RH#240962. + +2007-03-30 Dmitry V. Levin <ldv@altlinux.org> + + * mem.c (mmap_flags): Add MAP_32BIT. + Reported by Kirill A. Shutemov. + +2007-01-12 Dmitry V. Levin <ldv@altlinux.org> + + * sock.c (sock_ioctl): Check umove() return code. + [LINUX]: Handle SIOCGIFTXQLEN and SIOCGIFMAP. + +2007-03-16 Roland McGrath <roland@redhat.com> + + * linux/s390/syscallent.h: Use sys_restart_syscall for 7. + * linux/s390x/syscallent.h: Likewise. + +2007-02-18 Roland McGrath <roland@redhat.com> + + * strace.spec (Summary): Remove trailing period. + (%files): Add %doc files. + (%changelog): Double %s in text. + (BuildRoot): Change to Fedora canonical. + (%install): Don't use %makeinstall macro. + (%build): Use %{?_smp_mflags}. + +2007-01-16 Roland McGrath <roland@redhat.com> + + * configure.ac, NEWS: Version 4.5.15. + * debian/changelog, strace.spec: 4.5.15-1. + +2007-01-16 Dmitry V. Levin <ldv@altlinux.org> + + Update mount parser to match kernel behaviour. + * system.c [LINUX] (MS_VERBOSE): Rename to MS_SILENT. + [LINUX] (MS_UNBINDABLE, MS_PRIVATE, MS_SLAVE, MS_SHARED): + New macros. + [LINUX] (mount_flags): Add them. + [LINUX] (MS_MGC_MSK): New macro. + [LINUX] (sys_mount): Update parser to match kernel behaviour: + discard MS_MGC_VAL magic, do not decode type and/or data + strings when specified flags do not imply valid strings. + +2007-01-12 Dmitry V. Levin <ldv@altlinux.org> + + * time.c [LINUX] (tprint_timex32, tprint_timex): Decode adjtimex + modes as flags. + +2007-01-11 Dmitry V. Levin <ldv@altlinux.org> + + Update umount parser. + * system.c [LINUX] (MNT_FORCE, MNT_DETACH, MNT_EXPIRE): New macros. + [LINUX] (umount_flags): New xlat structure with MNT_* entries. + [LINUX] (sys_umount2): Use umount_flags. + + Fix open(2) flags parser. + * defs.h (tprint_open_modes): New function. + * desc.c (sprint_open_modes): New function. + (sys_fcntl): Use tprint_open_modes() and sprint_open_modes(). + * file.c (openmodes): Split xlat into open_access_modes and + open_mode_flags. + (tprint_open_modes): New function. + (decode_open): Use it. + * ipc.c (sys_mq_open, printmqattr): Likewise. + Fixes RH#222385. + +2007-01-11 Roland McGrath <roland@redhat.com> + + * configure.ac, NEWS: Version 4.5.15. + * debian/changelog, strace.spec: 4.5.15-1. + + * debian/control (Uploaders): Add Frederik Schueler <fs@debian.org>. + + * strace.spec (Release): Use %{?dist}. + + * system.c [LINUX] (CTL_CPU): Define in case header is missing it. + +2006-12-27 Dmitry V. Levin <ldv@altlinux.org> + + Add const qualifier to xlookup() return value. + * defs.h (xlookup): Add const qualifier to return value. + * desc.c (sprintflags): Likewise. + * process.c (printpriv): Update xlookup() use. + * signal.c (sprintsigmask): Add const qualifier to first argument and + return value. + * util.c (xlookup): Add const qualifier to return value. + (printxval): Update xlookup() use. + +2006-12-21 Dmitry V. Levin <ldv@altlinux.org> + + Move counts code to separate file. + * count.c: New file. + * Makefile.am (strace_SOURCES): Add count.c. + * syscall.c (call_counts, countv, counts, shortest, time_cmp, + syscall_cmp, count_cmp, sortfun, overhead, set_sortby, + set_overhead, call_summary_pers, call_summary): Move to count.c + * count.c (count_syscall): New function. + * defs.h (count_syscall): Declare it. + * syscall.c (trace_syscall): Use it. + +2006-12-20 Dmitry V. Levin <ldv@altlinux.org> + + * syscall.c (internal_syscall): Change conditions for internal_exit, + internal_fork, internal_clone, internal_exec and internal_wait + calls from switching on known scno values to switching on known + sysent[tcp->scno].sys_func values. + Fixes RH#179740. + + Show system call summary for each personality. + * syscall.c (countv): New call_counts pointers array. + (counts): Convert to macro wrapper around countv. + (call_summary_pers): New function. + (call_summary): Use it for each personality. + Fixes RH#192193. + +2006-12-12 Dmitry V. Levin <ldv@altlinux.org> + + Fix -ff -o behaviour. Fix piping trace output. + * defs.h (newoutf): Remove. + (alloctcb): Rename to alloc_tcb. Add alloctcb() macro wrapper + around alloc_tcb(). + * process.c [!USE_PROCFS] (internal_clone, internal_fork): + Remove newoutf() call. + * strace.c (set_cloexec_flag, strace_fopen, strace_popen, + swap_uid): New functions. + (popen_pid): New variable. + (newoutf): Make static, use strace_fopen(). + (main): Use strace_fopen() and strace_popen(), remove uids + swapping. Do not open outfname when followfork > 1. + Reinitialize tcp->outf properly. + (alloctcb): Rename to alloc_tcb. Use newoutf(). + (trace): Check popen_pid. Remove newoutf() call. + [USE_PROCFS] (proc_open, proc_poll_open): Use set_cloexec_flag(). + Fixes RH#204950, RH#218435, Debian#353935. + +2006-12-10 Dmitry V. Levin <ldv@altlinux.org> + + Add biarch support for "struct sigevent". + * time.c [LINUX && SUPPORTED_PERSONALITIES > 1] (printsigevent32): + New function. + [LINUX] (printsigevent): [SUPPORTED_PERSONALITIES > 1] + Handle 32-bit personality. + + Add biarch support for "struct timex". + * time.c [LINUX && SUPPORTED_PERSONALITIES > 1] (tprint_timex32): + New function. + [LINUX] (tprint_timex): New function. + [LINUX] (sys_adjtimex): Use it. + + Enhance adjtimex parser. + * time.c [LINUX] (adjtimex_modes, adjtimex_status, + adjtimex_state): New xlat structures. + [LINUX] (sys_adjtimex): Print the whole struct timex. + Decode modes, status and return code. + + Add biarch support for "struct itimerval". + * time.c (printitv): Rename to printitv_bitness(). + Add printitv() macro wrapper around printitv_bitness(). + (printitv_bitness): Handle 32-bit personality. + [ALPHA] (sys_osf_getitimer, sys_osf_setitimer): + Use printitv_bitness(). + (tprint_timeval, tprint_timeval32): New functions. + (printtv_bitness, printitv_bitness, sys_adjtimex): Use them. + (printitv32): Remove. + + Add biarch support for "struct timeval". + * defs.h (bitness_t): New enum type. + (printtv_bitness, sprinttv): New function prototypes. + (printtv): Convert to macro wrapper around printtv_bitness(). + (printtv32): Remove. + * desc.c (decode_select): Use printtv_bitness() and sprinttv(). + (sys_oldselect, sys_osf_select, sys_select, sys_pselect6): + Update decode_select() use. + * file.c [ALPHA] (sys_osf_utimes): Use printtv_bitness(). + * time.c (printtv_bitness, sprinttv): New functions. + (printtv, printtv32): Remove. + [ALPHA] (sys_osf_settimeofday, sys_osf_settimeofday): + Use printtv_bitness(). + Fixes RH#171626, RH#173050. + + Add biarch support for "struct iovec". + * defs.h (personality_wordsize): Add. + * io.c [HAVE_SYS_UIO_H] (tprint_iov): [LINUX && + SUPPORTED_PERSONALITIES > 1] Handle 32-bit personality. + * util.c [HAVE_SYS_UIO_H] (dumpiov): [LINUX && + SUPPORTED_PERSONALITIES > 1] Likewise. + Patch from Jakub Jelinek. + Fixes RH#218433. + + * time.c (sys_timer_create): Check umove() return code. + + Make several global variables static. + #ifdef definitions of rarely unused functions. + * defs.h (rflag, tflag, outfname): Remove. + * strace.c (iflag, interactive, pflag_seen, rflag, tflag, + outfname, username): Make static. + * desc.c (sys_getdtablesize): Define only for + ALPHA || FREEBSD || SUNOS4. + * file.c (sys_fchroot): Define only for SUNOS4 || SVR4. + (sys_mkfifo): Define only for FREEBSD. + * mem.c (sys_sbrk): Define only for FREEBSD || SUNOS4. + (sys_getpagesize): Define only for + ALPHA || FREEBSD || IA64 || SUNOS4 || SVR4. + * net.c (sys_so_socket): Define only for SVR4. + * process.c (sys_gethostid): Define only for + FREEBSD || SUNOS4 || SVR4. + (sys_gethostname): Define only for + ALPHA || FREEBSD || SUNOS4 || SVR4. + (sys_setpgrp): Define only for ALPHA || SUNOS4 || SVR4. + (sys_execv): Define only for SPARC || SPARC64 || SUNOS4. + * signal.c (sys_sigblock): Define only for FREEBSD || SUNOS4. + (sys_sighold, sys_sigwait): Define only for SVR4. + (sys_killpg): Define only for FREEBSD || SUNOS4. + * stream.c (sys_getmsg): Define only for + SPARC || SPARC64 || SUNOS4 || SVR4. + * syscall.c (sys_indir): Define only for SUNOS4. + +2006-11-27 Dmitry V. Levin <ldv@altlinux.org> + + * system.c [LINUX]: Define CTL_PROC, since Linux 2.6.18+ headers + removed CTL_PROC enum. Patch from Jakub Jelinek. + [LINUX] (sysctl_root): Add CTL_BUS, CTL_ABI and CTL_CPU. + +2006-11-20 Jakub Jelinek <jakub@redhat.com> + + * linux/ia64/syscallent.h: Add #if check to make sure that + SYS_socket_subcall adjustment isn't forgotten again. + +2006-10-16 Dmitry V. Levin <ldv@altlinux.org> + + Implement comprehensive quotactl(2) parser for Linux. + * Makefile.am (strace_SOURCES): Add quota.c. + * quota.c: New file. + * resource.c: Remove old quotactl(2) parser. + Fixes RH#118696. + +2006-10-14 Dmitry V. Levin <ldv@altlinux.org> + + * configure.ac (AC_CHECK_HEADERS): Add inttypes.h. + * file.c [_LFS64_LARGEFILE && (LINUX || SVR4)]: + Include <inttypes.h>. + (sys_getdents64): Use PRIu64/PRId64 to avoid gcc warnings on + 64-bit platforms. + + * strace.c (main): Check getcwd() return code. + +2006-10-13 Ulrich Drepper <drepper@redhat.com> + Bernhard Kaindl <bk@suse.de> + Dmitry V. Levin <ldv@altlinux.org> + Michael Holzheu <holzheu@de.ibm.com> + + Add hooks for new syscalls. Add decoders for *at, inotify*, + pselect6, ppoll and unshare syscalls. + + * defs.h: Declare print_sigset. + * desc.c (sys_pselect6): New function. + * file.c (decode_open, decode_access, decode_mkdir, + decode_readlink, decode_chmod, decode_utimes, decode_mknod): + New functions. + (sys_open, sys_access, sys_mkdir, sys_readlink, sys_chmod, + sys_utimes, sys_mknod): Use them. + [LINUX] (fstatatflags, unlinkatflags, inotify_modes): New + variables. + [LINUX] (print_dirfd, sys_openat, sys_faccessat, + sys_newfstatat, sys_mkdirat, sys_linkat, sys_unlinkat, + sys_symlinkat, sys_readlinkat, sys_renameat, sys_fchownat, + sys_fchmodat, sys_futimesat, sys_mknodat, sys_inotify_add_watch, + sys_inotify_rm_watch): New functions. + * process.c [LINUX] (sys_unshare): New function. + * signal.c (print_sigset): New function. + (sys_sigprocmask): Use it. + * stream.c (decode_poll): New function. + (sys_poll): Use it. + [LINUX] (sys_ppoll): New function. + * linux/syscall.h: Delcare new syscall handlers. + * linux/syscallent.h: Hook up new 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/sparc/syscallent.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + * linux/x86_64/syscallent.h: Likewise. + Fixes RH#178633. + +2006-10-06 Dmitry V. Levin <ldv@altlinux.org> + + * strace.c [!USE_PROCFS] (trace): Presence of PT_GETSIGINFO + macro does not mean that PT_CR_IPSR and PT_CR_IIP macros are + also defined, so check them along with PT_GETSIGINFO. + Fixes RH#209856. + +2006-09-01 Dmitry V. Levin <ldv@altlinux.org> + + * file.c (print_xattr_val): Fix memory corruption bug reported + by James Antill. + Fixes RH#200621. + +2006-04-21 Dmitry V. Levin <ldv@altlinux.org> + + * defs.h [LINUX && X86_64 && !__NR_exit_group]: Define + __NR_exit_group. + +2006-03-29 Dmitry V. Levin <ldv@altlinux.org> + + Fix race conditions in tcb allocation. + * process.c (fork_tcb): Return error code as documented. Do not + print "tcb table full" error message. + [USE_PROCFS] (internal_fork): Do not print "tcb table full" + error message. + [SYS_clone || SYS_clone2] (internal_clone, internal_fork): Call + fork_tcb() before alloctcb(). Do not print "tcb table full" + error message. + * strace.c (main): Do not print "tcb table full" error message. + (expand_tcbtab): Print error message in case of memory allocation + failure. + (alloctcb): Print error message when tcb table is full. + (trace): Expand tcb table if necessary prior to allocating + entry there. Do not print "tcb table full" error message. + Fixes RH#180293. + +2006-08-22 Roland McGrath <roland@redhat.com> + + * ipc.c (sys_msgget, sys_semget, sys_shmget): Show key values in hex. + Fixes RH#198179. + +2006-08-21 Roland McGrath <roland@redhat.com> + + * linux/syscall.h (SYS_socket_subcall): Bump to 400. + * linux/syscallent.h: Update table. + * linux/arm/syscallent.h: Likewise. + * linux/m68k/syscallent.h: Likewise. + * linux/s390/syscallent.h: Likewise. + * linux/s390x/syscallent.h: Likewise. + * linux/powerpc/syscallent.h: Likewise. + * linux/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + Fixes RH#201462. + +2006-04-25 Roland McGrath <roland@redhat.com> + + * strace.c (main): Fail when -c is given with -ff. + * strace.1: Note their incompatibility. + Fixes RH#187847. + + * strace.c (main): Fail when nonoption args follow -p switches. + Fixes Debian#361302. + + * Makefile.am (EXTRA_DIST): Add xlate.el. + + * linux/mips/Makefile.in: File removed, unused cruft. + * linux/sparc/Makefile.in: Likewise. + + * strace.spec (Source0): Use http://dl.sourceforge.net URL. + + * ipc.c (sys_semtimedop): Fixed inverted indirect_ipccall test. + * linux/hppa/syscallent.h: Fixed semtimedop entry. + From Mike Stroyan <mike.stroyan@hp.com>. + Fixes Debian#340239. + +2006-03-30 Daniel Jacobowitz <dan@codesourcery.com> + + * linux/arm/syscallent.h: Correct the name of exit. Remove + M68K conditionals and sys_security. Correct syscalls 243-282. + Fixes Debian#360154. + + * process.c (change_syscall): Add ARM support. + * syscall.c (get_scno): Handle ARM EABI. + Fixes Debian#360152. + +2006-01-16 Roland McGrath <roland@redhat.com> + + * configure.ac, NEWS: Version 4.5.14. + * debian/changelog, strace.spec: 4.5.14-1. + +2006-01-13 Roland McGrath <roland@redhat.com> + + * debian/control (Build-Depends): Add debhelper. + +2006-01-12 Roland McGrath <roland@redhat.com> + + * signal.c [LINUX] (sys_restart_syscall): New function. + * linux/syscall.h: Declare sys_restart_syscall. + * linux/sparc/syscall.h: Likewise. + * linux/syscallent.h: Call 0 is restart_syscall. + * linux/arm/syscallent.h: Likewise. + * linux/powerpc/syscallent.h: Likewise. + * linux/m68k/syscallent.h: Likewise. + * linux/hppa/syscallent.h: Likewise. + * linux/sh/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + * linux/alpha/syscallent.h: Use sys_restart_syscall. + * linux/ia64/syscallent.h: Likewise. + * linux/mips/syscallent.h: Likewise. + * linux/x86_64/syscallent.h: Likewise. + Fixes RH#165469, Debian#350641. + +2005-08-08 Dmitry V. Levin <ldv@altlinux.org> + + * system.c [LINUX] (MS_MGC_VAL): New macro. + [LINUX] (mount_flags): Add it. + [LINUX] (sys_mount): If neither MS_BIND nor MS_MOVE bits are + set in the flags argument, try to fetch data string. + Fixes RH#165377. + +2006-01-12 Roland McGrath <roland@redhat.com> + + * system.c (sys_sysctl): Don't read off end of NAME when max_strlen + exceeds INFO.nlen. + From Timo Lindfors <timo.lindfors@iki.fi>. + Fixes Debian#339117. + + * debian/rules (binary-arch): Don't pass -s to install. Use dh_strip. + Fixes Debian#325132. + + * debian/control (Standards-Version): Update to 3.6.2. + + * defs.h [LINUXSPARC] (PERSONALITY0_WORDSIZE, PERSONALITY1_WORDSIZE): + New macros. + [SPARC64] (PERSONALITY2_WORDSIZE): New macro. + [X86_64] (PERSONALITY0_WORDSIZE, PERSONALITY1_WORDSIZE): New macros. + * syscall.c (PERSONALITY0_WORDSIZE): New macro if undefined. + (personality_wordsize): New variable. + (decode_subcall): Use it for size of argument words. + Fixes RH#174354. + +2005-11-17 Dmitry V. Levin <ldv@altlinux.org> + + Implement qual_flags support for each personality. + * strace.c (main): Move qualify calls after set_personality call. + * syscall.c (qual_flags0): New variable.. + [SUPPORTED_PERSONALITIES >= 2] (qual_flags1): New variable. + [SUPPORTED_PERSONALITIES >= 3] (qual_flags2): New variable. + (qual_flags): Change variable definition from array to pointer. + (set_personality): Initialize qual_flags variable. + (qualify_one): Add "pers" argument to specify personality. + [SUPPORTED_PERSONALITIES >= 2]: Set qual_flags1 if requested. + [SUPPORTED_PERSONALITIES >= 3]: Set qual_flags2 if requested. + (qual_syscall): Pass personality to qualify_one. + [SUPPORTED_PERSONALITIES >= 2]: Look for syscall also in sysent1 + table. + [SUPPORTED_PERSONALITIES >= 3]: Look for syscall also in sysent2 + table. + (qual_signal): Pass personality to qualify_one. + (qual_desc): Likewise. + (qualify): Use qualify_one instead of manual qual_flags + manipulations. + [SUPPORTED_PERSONALITIES >= 2]: Look for syscall also in sysent1 + table. + [SUPPORTED_PERSONALITIES >= 3]: Look for syscall also in sysent2 + table. + * defs.h: Update qual_flags declaration. + Fixes RH#173986. + +2005-11-14 Dmitry V. Levin <ldv@altlinux.org> + + * syscall.c (qual_syscall): Handle numeric syscall specification. + Fixes RH#174798. + + * syscall.c (qual_signal, qual_options): Remove redundant argument + check. + +2005-12-01 Roland McGrath <roland@redhat.com> + + * ipc.c (indirect_ipccall) [MIPS || HPPA]: Return false. + Fixes Debian#340239. + + * Makefile.am (EXTRA_DIST): Add linux/arm/syscallent.h + and linux/m68k/syscallent.h. + Fixes Debian#336197. + + * debian/control (Architecture): Add armeb. + Fixes Debian#335681. + +2005-11-02 Michal Marek <mmarek@suse.cz> + + * strace-graph (handle_trace): follow clone() and vfork() calls. + +2005-10-25 Heiko Carstens <heiko.carstens@de.ibm.com> + + * linux/s390/syscallent.h: Added ioprio_set, ioprio_get, + inotify_init, inotify_add_watch, inotify_rm_watch. + Corrected number of arguments for request_key. + * linux/s390x/syscallent.h: Likewise. + +2005-12-01 Roland McGrath <roland@redhat.com> + + * ipc.c (indirect_ipccall) [IA64]: Return false unless the syscall + number is in the low range of IA32 syscalls. + +2005-10-07 Andreas Schwab <schwab@suse.de> + + * linux/ia64/syscallent.h: Syscall 1105 is gettid, not ioperm. + +2005-12-01 Roland McGrath <roland@redhat.com> + + * resource.c (resources): Add RLIMIT_NICE, RLIMIT_RTPRIO. + Reported by Scott Tsai <scottt958@yahoo.com.tw>. + + * ipc.c (indirect_ipccall): New function. + (sys_msgctl, sys_msgsnd, sys_msgrcv, sys_semop): Use that predicate + instead of #ifdef LINUX test. + [LINUX] (sys_semtimedop): Likewise. + (sys_shmctl, sys_shmat, sys_shmdt): Likewise. + Fixes RH#164755. + +2005-07-31 Ulrich Drepper <drepper@redhat.com> + + * linux/x86_64/syscallent.h: Fix syscall parameter count for msgrcv and + msgctl. + + * ipc.c (sys_msgrcv): Add entering handling and print first parameter + there. + Fixes RH#164757. + +2005-08-08 Dmitry V. Levin <ldv@altlinux.org> + + * strace.1: Update "SEE ALSO" links to reference to valid + manpages. + Patch from Michail Litvak <mci@owl.openwall.com>. + Fixes RH#165375. + +2005-10-21 Roland McGrath <roland@redhat.com> + + * util.c (printpathn): Cap N at sizeof path - 1. + +2005-08-03 Roland McGrath <roland@redhat.com> + + * configure.ac, NEWS: Version 4.5.13. + * debian/changelog, strace.spec: 4.5.13-1. + + * configure.ac: Check for struct dqblk.dqb_curblocks field. + * resource.c [LINUX] (OLD_CMD): New macro. + (quotacmds): Use it to hard-wire old O_* values, don't use macros. + (sys_quotactl): If dqb_curblocks is not there, it's called + dqb_curspace instead. Print dqb_* fields as unsigned long long. + +2005-07-19 Michael Schmitz <schmitz@debian.org> + + Long overdue m68k cleanup. + * linux/syscallent.h: remove m68k declarations. + * linux/m68k/syscallent.h: new file, fixed up declarations + to match kernel version 2.6.11. Newer syscalls are sufficiently + different from i386 to merit a separate file. + +2005-08-03 Roland McGrath <roland@redhat.com> + + * linux/x86_64/syscallent.h: Update init_module argument count. + * linux/sparc/syscallent.h: Likewise. + * linux/sparc64/syscallent2.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + * linux/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + * linux/s390/syscallent.h: Likewise. + * linux/s390x/syscallent.h: Likewise. + * linux/powerpc/syscallent.h: Likewise. + * linux/arm/syscallent.h: Likewise. + +2005-07-22 James Lentini <jlentini@gmail.com> + + * bjm.c (sys_init_module): Display all three arguments. + * linux/syscallent.h: Update argument count. + +2005-08-03 Roland McGrath <roland@redhat.com> + + * process.c (internal_wait): Don't suspend when known child is known + to be exiting already. + + * strace.c (detach): If detaching the last live thread in a group with + a zombie leader, then detach the leader too. + (handle_group_exit): Use detach, not droptcb, for predeceased thread. + Mark process about to take a signal with TCB_GROUP_EXITING flag. + Fixes RH#161919. + +2005-07-19 Roland McGrath <roland@redhat.com> + + * defs.h [LINUX] [M68K] (__NR_exit_group): Define it if missing. + Fixes Debian#315500. + +2005-07-14 Heiko Carstens <heiko.carstens@de.ibm.com> + + * linux/s390/syscallent.h (sys_tgkill, vserver, fadvise64_64) + (statfs64, fstatfs64, remap_file_pages, mbind, get_mempolicy) + (set_mempolicy, mq_open, mq_unlink, mq_timedsend, mq_timedreceive) + (mq_notify, mq_getsetattr, sys_kexec_load, add_key, request_key) + (keyctl, waitid): Added. + * linux/s390x/syscallent.h: Likewise and added missing _llseek. + * linux/s390/errnoent.h (ECANCELED, ENOKEY, EKEYEXPIRED) + (EKEYREVOKED, EKEYREJECTED, EOWNERDEAD, ENOTRECOVERABLE): Added. + * linux/s390x/errnoent.h: Likewise. + +2005-07-05 Roland McGrath <roland@redhat.com> + + * mem.c [LINUX] (sys_old_mmap) [X86_64]: Extract 32-bit values if + child is 32-bit. + Fixes RH#162467. + +2005-06-08 Dmitry V. Levin <ldv@altlinux.org> + + Introduce "-e trace=desc". + * defs.h (TRACE_DESC): New flag. + * syscall.c: Define TD macro before include of syscallent files + and undefine it afterwards. + (lookup_class): Recognize "desc" keyword. + * strace.1: Document "-e trace=desc". + * freebsd/i386/syscallent.h: Mark those syscalls which take a + file descriptor as an argument or return a file descriptor with + TD flag. + * 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/sh/syscallent.h: Likewise. + * linux/sh64/syscallent.h: Likewise. + * linux/sparc/syscallent.h: Likewise. + * linux/sparc64/syscallent2.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + * linux/syscallent.h: Likewise. + * linux/x86_64/syscallent.h: Likewise. + * sunos4/syscallent.h: Likewise. + * svr4/syscallent.h: Likewise. + Fixes RH#159400. + + Remove TF flag from those syscalls which have no filename argument. + * freebsd/i386/syscallent.h: Remove TF flag from fstat, pread, + pwrite, fstat, sendfile. + * linux/alpha/syscallent.h: Remove TF flag from read, write, + pread, pwrite, sendfile. + * linux/hppa/syscallent.h: Remove TF flag from read, write, + pread, pwrite, fstat64, sendfile, ftruncate64. + * linux/ia64/syscallent.h: Remove TF flag from read, write, + sendfile, fstat, fadvise64. + * linux/mips/syscallent.h: Remove TF flag from read, write, + fstatfs, fstat, pread, pwrite, sendfile, ftruncate64, fstat64, + sendfile64, fadvise64, fstatfs64. + * linux/powerpc/syscallent.h: Remove TF flag from read, write, + fstat, pread, pwrite, sendfile, ftruncate64, fstat64, sendfile64, + fadvise64, fstatfs64, fadvise64_64. + * linux/s390/syscallent.h: Remove TF flag from pread, pwrite, + sendfile, ftruncate64, fstat64, sendfile64. + * linux/s390x/syscallent.h: Remove TF flag from pread, pwrite, + sendfile, sendfile64. + * linux/sh/syscallent.h: Remove TF flag from pread, pwrite, + sendfile, fstat64. + * linux/sh64/syscallent.h: Remove TF flag from pread, pwrite, + sendfile, ftruncate64, fstat64. + * linux/sparc/syscallent.h: Remove TF flag from sendfile, fstat64, + pread, pwrite, sendfile64. + * linux/sparc64/syscallent2.h: Likewise. + * linux/sparc64/syscallent.h: Likewise. + * linux/syscallent.h: Remove TF flag from pread, pwrite, sendfile, + ftruncate64, fstat64, sendfile64, fadvise64, fadvise64, fstatfs64, + fadvise64_64. + * linux/x86_64/syscallent.h: Remove TF flag from pread, pwrite, + sendfile, fadvise64_64. + * svr4/syscallent.h: Remove TF flag from pread, pwrite, ftruncate, + fstatvfs64, ftruncate64. + Fixes RH#159340. + +2005-07-04 Roland McGrath <roland@redhat.com> + + * net.c (sockipv6options): Add IPV6_ADD_MEMBERSHIP, + IPV6_DROP_MEMBERSHIP, IPV6_ROUTER_ALERT. + From Ulrich Drepper <drepper@redhat.com>. + Fixes RH#162450. + + * net.c (sockipoptions): Fix typos. + From Ulrich Drepper <drepper@redhat.com>. + Fixes RH#161578. + + * util.c (printnum_int): New function, printnum with s/long/int/. + * defs.h: Declare it. + * net.c (printsockopt): Use it for int-sized option. + Fixes RH#162449. + Reported by Ulrich Drepper <drepper@redhat.com>. + +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/strace-4.5.20/INSTALL b/strace-4.5.20/INSTALL new file mode 100644 index 0000000..7a11ed0 --- /dev/null +++ b/strace-4.5.20/INSTALL
@@ -0,0 +1,180 @@ +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/strace-4.5.20/Makefile.am b/strace-4.5.20/Makefile.am new file mode 100644 index 0000000..c44762e --- /dev/null +++ b/strace-4.5.20/Makefile.am
@@ -0,0 +1,130 @@ +# 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$(srcdir)/$(OS)/$(ARCH) -I$(srcdir)/$(OS) + +strace_SOURCES = strace.c syscall.c count.c util.c desc.c file.c ipc.c \ + io.c ioctl.c mem.c net.c process.c bjm.c quota.c \ + resource.c signal.c sock.c system.c term.c time.c \ + proc.c scsi.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 \ + debian/compat debian/strace64.install debian/strace64.manpages \ + debian/strace.docs debian/strace.examples debian/strace.install \ + debian/strace.manpages debian/strace-udeb.install \ + strace.spec \ + strace-graph ChangeLog ChangeLog-CVS COPYRIGHT CREDITS PORTING \ + 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/dummy.h \ + linux/i386/syscallent.h \ + linux/alpha/errnoent.h linux/alpha/ioctlent.h \ + linux/alpha/signalent.h linux/alpha/syscallent.h \ + linux/arm/syscallent.h linux/arm/syscallent1.h \ + linux/arm/signalent1.h linux/arm/ioctlent1.h \ + linux/arm/errnoent1.h \ + linux/avr32/syscallent.h \ + linux/bfin/ioctlent.h linux/bfin/syscallent.h \ + linux/hppa/errnoent.h linux/hppa/ioctlent.h \ + linux/hppa/signalent.h linux/hppa/syscallent.h \ + linux/ia64/syscallent.h \ + linux/ia64/ioctlent.h \ + linux/m68k/syscallent.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/ioctlent.h \ + linux/s390/ioctlent.h \ + linux/s390/syscallent.h \ + linux/s390x/ioctlent.h \ + linux/s390x/syscallent.h \ + linux/sh/syscallent.h \ + linux/sh/ioctlent.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/tile/syscallent.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 \ + xlate.el + +.PHONY: srpm +srpm: dist-bzip2 + rpmbuild --define '%_srcrpmdir .' -ts $(distdir).tar.bz2 + +if MAINTAINER_MODE + +gen_changelog_start_date = 2009-07-08 20:00 +$(srcdir)/ChangeLog: $(top_srcdir)/gitlog-to-changelog $(srcdir)/Makefile.in \ + $(top_srcdir)/.git/refs/heads/* + @rm -f $@.new + (cd $(top_srcdir); \ + ./gitlog-to-changelog --since='$(gen_changelog_start_date)'; \ + echo; echo; echo 'See ChangeLog-CVS for older changes.' \ + ) > $@.new + chmod 444 $@.new + mv -f $@.new $@ + +export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner --mode=go-w,go+rX + +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/strace-4.5.20/Makefile.in b/strace-4.5.20/Makefile.in new file mode 100644 index 0000000..d67db60 --- /dev/null +++ b/strace-4.5.20/Makefile.in
@@ -0,0 +1,891 @@ +# Makefile.in generated by automake 1.11.1a from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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. + + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +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) +subdir = . +DIST_COMMON = README $(am__configure_deps) $(noinst_HEADERS) \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/config.h.in $(top_srcdir)/configure AUTHORS INSTALL \ + NEWS TODO config.guess config.sub depcomp install-sh missing +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 config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(man1dir)" +PROGRAMS = $(bin_PROGRAMS) +am_strace_OBJECTS = strace.$(OBJEXT) syscall.$(OBJEXT) count.$(OBJEXT) \ + util.$(OBJEXT) desc.$(OBJEXT) file.$(OBJEXT) ipc.$(OBJEXT) \ + io.$(OBJEXT) ioctl.$(OBJEXT) mem.$(OBJEXT) net.$(OBJEXT) \ + process.$(OBJEXT) bjm.$(OBJEXT) quota.$(OBJEXT) \ + resource.$(OBJEXT) signal.$(OBJEXT) sock.$(OBJEXT) \ + system.$(OBJEXT) term.$(OBJEXT) time.$(OBJEXT) proc.$(OBJEXT) \ + scsi.$(OBJEXT) stream.$(OBJEXT) +strace_OBJECTS = $(am_strace_OBJECTS) +strace_LDADD = $(LDADD) +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +SCRIPTS = $(bin_SCRIPTS) +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +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)"; }; } +GZIP_ENV = --best +DIST_ARCHIVES = $(distdir).tar.bz2 +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +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@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WARNFLAGS = @WARNFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +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@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +opsys = @opsys@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +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$(srcdir)/$(OS)/$(ARCH) -I$(srcdir)/$(OS) +strace_SOURCES = strace.c syscall.c count.c util.c desc.c file.c ipc.c \ + io.c ioctl.c mem.c net.c process.c bjm.c quota.c \ + resource.c signal.c sock.c system.c term.c time.c \ + proc.c scsi.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 \ + debian/compat debian/strace64.install debian/strace64.manpages \ + debian/strace.docs debian/strace.examples debian/strace.install \ + debian/strace.manpages debian/strace-udeb.install \ + strace.spec \ + strace-graph ChangeLog ChangeLog-CVS COPYRIGHT CREDITS PORTING \ + 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/dummy.h \ + linux/i386/syscallent.h \ + linux/alpha/errnoent.h linux/alpha/ioctlent.h \ + linux/alpha/signalent.h linux/alpha/syscallent.h \ + linux/arm/syscallent.h linux/arm/syscallent1.h \ + linux/arm/signalent1.h linux/arm/ioctlent1.h \ + linux/arm/errnoent1.h \ + linux/avr32/syscallent.h \ + linux/bfin/ioctlent.h linux/bfin/syscallent.h \ + linux/hppa/errnoent.h linux/hppa/ioctlent.h \ + linux/hppa/signalent.h linux/hppa/syscallent.h \ + linux/ia64/syscallent.h \ + linux/ia64/ioctlent.h \ + linux/m68k/syscallent.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/ioctlent.h \ + linux/s390/ioctlent.h \ + linux/s390/syscallent.h \ + linux/s390x/ioctlent.h \ + linux/s390x/syscallent.h \ + linux/sh/syscallent.h \ + linux/sh/ioctlent.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/tile/syscallent.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 \ + xlate.el + +@MAINTAINER_MODE_TRUE@gen_changelog_start_date = 2009-07-08 20:00 +@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'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__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) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) 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) + ($(am__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)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) +strace$(EXEEXT): $(strace_OBJECTS) $(strace_DEPENDENCIES) + @rm -f strace$(EXEEXT) + $(LINK) $(strace_OBJECTS) $(strace_LDADD) $(LIBS) +install-binSCRIPTS: $(bin_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n' \ + -e 'h;s|.*|.|' \ + -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) { files[d] = files[d] " " $$1; \ + if (++n[d] == $(am__install_max)) { \ + print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ + else { print "f", d "/" $$4, $$1 } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 's,.*/,,;$(transform)'`; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +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)/count.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)/quota.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resource.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scsi.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@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@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@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@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) '$<'` +install-man1: $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" + @list=''; test -n "$(man1dir)" || exit 0; \ + { for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ + done; } + +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man1dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + test -z "$$files" || { \ + echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } + +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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + 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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + 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; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__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 + @list='$(MANS)'; if test -n "$$list"; then \ + list=`for p in $$list; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ + if test -n "$$list" && \ + grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ + echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ + grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ + echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ + echo " typically \`make maintainer-clean' will remove them" >&2; \ + exit 1; \ + else :; fi; \ + else :; fi + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -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 $(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-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + $(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) | 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) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(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) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__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 \ + && cd "$$am__cwd" \ + || exit 1 + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @$(am__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) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 + +html-am: + +info: info-am + +info-am: + +install-data-am: install-man + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS install-binSCRIPTS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: install-man1 + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +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-man + +uninstall-man: uninstall-man1 + +.MAKE: all check install install-am install-strip + +.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-lzma dist-shar dist-tarZ dist-xz 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-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-man1 \ + install-pdf install-pdf-am install-ps install-ps-am \ + 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-man uninstall-man1 + + +.PHONY: srpm +srpm: dist-bzip2 + rpmbuild --define '%_srcrpmdir .' -ts $(distdir).tar.bz2 +@MAINTAINER_MODE_TRUE@$(srcdir)/ChangeLog: $(top_srcdir)/gitlog-to-changelog $(srcdir)/Makefile.in \ +@MAINTAINER_MODE_TRUE@ $(top_srcdir)/.git/refs/heads/* +@MAINTAINER_MODE_TRUE@ @rm -f $@.new +@MAINTAINER_MODE_TRUE@ (cd $(top_srcdir); \ +@MAINTAINER_MODE_TRUE@ ./gitlog-to-changelog --since='$(gen_changelog_start_date)'; \ +@MAINTAINER_MODE_TRUE@ echo; echo; echo 'See ChangeLog-CVS for older changes.' \ +@MAINTAINER_MODE_TRUE@ ) > $@.new +@MAINTAINER_MODE_TRUE@ chmod 444 $@.new +@MAINTAINER_MODE_TRUE@ mv -f $@.new $@ + +@MAINTAINER_MODE_TRUE@export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner --mode=go-w,go+rX + +@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/strace-4.5.20/NEWS b/strace-4.5.20/NEWS new file mode 100644 index 0000000..1628b83 --- /dev/null +++ b/strace-4.5.20/NEWS
@@ -0,0 +1,328 @@ +Noteworthy changes in release 4.5.20 +==================================== + +* Improvements + * Implemented decoding of new linux syscalls: inotify_init1, recvmmsg. + * Implemented basic decoding of new linux syscalls: preadv, pwritev, + rt_tgsigqueueinfo, perf_event_open. + * Enhanced decoding of recently added syscalls on non-x86 architectures + by replacing a bare decoder with elaborate parsers enabled earlier + for x86/x86-64. + * Implemented -C option to combine regular and -c output. + (Addresses Debian bug #466196) + * Enhanced decoding of mbind and mremap syscalls. + * Enhanced SOL_PACKET socket options decoding. + * Regenerated list of ioctl names from linux 2.6.33. + * Added TILE architecture support. + +* Bug fixes + * Fixed build with Linux kernel headers 2.6.32-rc5+. + (Addresses Debian bug #560516 and Fedora bug #539044) + * Fixed build on mips. + * Fixed handling of Linux systems without struct statfs64. + * Fixed reporting signal mask by sigreturn on powerpc. + * Fixed potential stack buffer overflow in select decoder. + (Addresses Fedora bug #556678) + * Corrected msgsnd indirect ipccall decoding. + * Corrected decoding of 64bit syscalls. + (Addresses Debian bug #570603) + * Corrected getsockopt decoding on architectures where + sizeof(long) > sizeof(int). + (Addresses Debian bug #494844) + * Corrected decoding of epoll_pwait. + (Addresses Debian bug #513014) + * Corrected handling of killed threads. + +Noteworthy changes in release 4.5.19 +==================================== + +* Changes in behavior + * When command exits, strace now exits with the same exit status. + If command is terminated by a signal, strace terminates itself + with the same signal, so that strace can be used as a wrapper + process transparent to the invoking parent process. + When using -p option, the exit status of strace is zero unless + there was an unexpected error in doing the tracing. + (Addresses Fedora bug #105371 and Debian bug #37665) + +* Improvements + * Implemented decoding of new Linux syscalls: accept4, dup3, + epoll_create1, eventfd2, inotify_init1, pipe2, signalfd4. + * Implemented decoding of socket type flags introduced in Linux 2.6.27. + * Implemented decoding of accept4 socketcall. + * Enhanced prctl decoding. + * Enhanced nanosleep decoding. + * Enhanced ptrace decoding. + * Enhanced futex decoding. + * Enhanced CAP_* decoding. + * Enhanced SIOCS* ioctls decoding. + * Enhanced fcntl F_* flags decoding. + * Enhanced semop/semtimedop decoding. + * Updated ARM architecture support. + * Added Blackfin architecture support. + * Added AVR32 architecture support. + * Added CRIS architecture support. + * Made strace detect when traced process suddenly disappeared. + +* Bug fixes + * Fixed syscall numbers for tee and sync_file_range. + (Addresses Debian bug #503124) + * Fixed several bugs in strings decoder, including potential heap + memory corruption. + (Addresses Fedora bugs #470529, #478324 and #511035) + * Marked sendfile(2) as a network syscall. + (Addresses Debian bug #509499) + * Fixed accept(2) decoding. + (Addresses Debian bug #507573) + * Fixed sigtimedwait(2) decoding. + * Fixed build on ARM EABI. + (Addresses Debian bugs #520084 and #535564, and Fedora bug #507576) + * Fixed display of 32-bit fcntl(F_SETLK) on 64-bit architectures. + (Addresses Red Hat bug #471169) + * Fixed display of 32-bit argv array on 64-bit architectures. + (Addresses Fedora bug #519480) + * Fixed display of 32-bit struct sigaction on 64-bit architectures. + * Fixed HPPA architecture support. + (Addresses Debian bugs #437928 and #546619) + +Changes in 4.5.18 +============== +* Bug fixes. +* Support new Linux/PPC system call subpage_prot and PROT_SAO flag. +* In sigaction system call, display sa_flags value along with SIG_DFL/SIG_IGN. + +Changes in 4.5.17 +============== +* Many bug fixes. +* -F is now deprecated, -f has traced vfork too on Linux for a long time now. +* Print O_CLOEXEC, MSG_CMSG_CLOEXEC flag bits. +* Improved output for prctl system call on Linux. +* Improved support for Linux/ARM. +* SA_NOMASK is now spelled SA_NODEFER, and SA_ONESHOT is spelled SA_RESETHAND. + +Changes in 4.5.16 +============== +* Bug fixes. +* Improved output for delete_module, futex, and mbind system calls on Linux. +* Improved output for SG_IO ioctls on Linux. +* Support new Linux system calls move_pages, utimensat, signalfd, timerfd, + eventfd, getcpu, epoll_pwait. + +Changes in 4.5.15 +============== +* Bug fixes. +* Several biarch improvements. +* Improved output for adjtimex, sysctl, quotactl, mount, umount. +* Support new Linux system calls *at, inotify*, pselect6, ppoll and unshare. + +Changes in 4.5.14 +============== +* Bug fixes. +* Accept numeric system calls in -e. + +Changes in 4.5.13 +============== +* Bug fixes. +* Introduce "-e trace=desc". + +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/strace-4.5.20/PORTING b/strace-4.5.20/PORTING new file mode 100644 index 0000000..aef4ce4 --- /dev/null +++ b/strace-4.5.20/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/strace-4.5.20/README b/strace-4.5.20/README new file mode 100644 index 0000000..51490cb --- /dev/null +++ b/strace-4.5.20/README
@@ -0,0 +1,31 @@ +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://sourceforge.net/projects/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/strace-4.5.20/README-freebsd b/strace-4.5.20/README-freebsd new file mode 100644 index 0000000..ef9bd3b --- /dev/null +++ b/strace-4.5.20/README-freebsd
@@ -0,0 +1,26 @@ +Here's a preliminary port of strace to FreeBSD. + +Here are some notes about it : + +- This couldn't have been done without the sources of the truss + utility by Sean Eric Fagan, which were of great help. + +- The tracing mecanism used by FreeBD is a lot like the SVR4 one, so + this port shares a lot of code with the SVR4 port, including the + akward event loop when tracing multiple processes. + +- This works for i386 binaries, although support for alpha processor + should be quite straight forward, but I do not have an alpha to + test it on. + +- Tracing linux binaries is not supported yet, but should be possible + with some work. + +- There are some issues with following forks, and only a few FreeBSD + specific syscalls are decoded right now. + +- This was tested on FreeBSD 4.0. I believe the tracing interface is + present since at least FreeBSD 3.0, so it "should" work on all + latest releases. I have no idea for other BSDs, though. + +Gaël Roualland <gael.roualland@iname.com>
diff --git a/strace-4.5.20/README-linux b/strace-4.5.20/README-linux new file mode 100644 index 0000000..62df258 --- /dev/null +++ b/strace-4.5.20/README-linux
@@ -0,0 +1,31 @@ + +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/strace-4.5.20/README-sunos4 b/strace-4.5.20/README-sunos4 new file mode 100644 index 0000000..1fa8ae2 --- /dev/null +++ b/strace-4.5.20/README-sunos4
@@ -0,0 +1,85 @@ +======================================================================== +This is the unmodified README from Paul Kranenburg's release of strace +for SunOS 4.1.x. Some of the notes and instructions are no longer valid +however the file has been retained for its historical value. -- jrs +======================================================================== + +/* + * @(#)README 2.4 92/01/21 + * + * Copyright (C) 1991 Paul Kranenburg. + * + * Please send comments, enhancements or any other useful ideas to + * the address at the end of this file. + * + */ + +strace(1) is a system call tracer for Sun(tm) systems much like the +Sun supplied program trace(1). strace(1) is a useful utility to sort +of debug programs for which no source is available which unfortunately +includes almost all of the Sun supplied system software. + +Like trace(1), strace displays each system call and its arguments as it +is invoked by the traced process, but tries to do a better job of +decoding the arguments, displaying them in symbolic format whenever +possible. Passed structures/character arrays are read from the process' +address space and displayed in an appropriate format. + +It is also possible to instruct strace to trace child processes as +they are created by the fork(2) system call. However, this is slightly +involved for two reasons: 1) the trace flag is cleared in the child +process by the fork system call, so we must make a special effort to +gain control of the child (see NOTES below), 2) our tracing manipulations +of the child may interfere with a possible wait(2) system call executed +by the (also traced) parent process. In this case we don't allow the parent +to continue until one of its children enters a state that may cause the +parent's wait(2) call to return. + + +NOTES. + +o Not all system calls have been implemented yet as described + above (see dummy.h for a list), these calls only have their args + displayed as hex numbers. + +o The program draws heavily on Sun's extensions to the ptrace(2) + system call. + +o This release is based upon SunOS 4.1.1. The syscall list (syscall.h) + and ioctl's (ioctlent.m4) are probably most critically dependant + on the OS version (see also /sys/os/init_sysent.c). + You may have to edit `ioctlsort.c' and/or `ioctlent.m4' to get + `ioctlsort.c' to compile with your suite of system header files. + +o The way in which child processes are caught and attached to after + the fork() call is Sparc-specific (in fact it has the looks of a + terrible hack). Also, this trick won't work with vfork(2). + Enhancements are sollicited for. + +o Dynamically linked executables can be convinced to use the fork(2) + system call in stead of vfork(2) by modifying their (internal) + symbol table immediately after such a program is exec'ed. Be + warned that programs which depend on vfork's peculiar semantics + may not run as expected. Enable by the `-F' switch. + + +INSTALLATION. + + Edit the paths in the Makefile to suit your local system. + Enter the usual make commands (`make debug' to enable the + compiler `-g' flag). + + Not all sites have a complete set of include files, depending + on the selected software categories at OS install time. The + makefile tries to detect the presence of the Sunview category, + if other files are missing you may have to edit `ioctlent.h'. + + +COMMENTS TO: + + P. Kranenburg + Department of Computer Science + Erasmus University Rotterdam + P.O. Box 1738 + NL-3000 DR Rotterdam + e-mail: pk@cs.few.eur.nl
diff --git a/strace-4.5.20/README-svr4 b/strace-4.5.20/README-svr4 new file mode 100644 index 0000000..387d24d --- /dev/null +++ b/strace-4.5.20/README-svr4
@@ -0,0 +1,21 @@ +Even though SVR4 has truss, you may prefer using strace for a number +of reasons. Not the least of which are portability and source code. + +The main event loop is awkward on systems for which procfs isn't +pollable. I think a pollable procfs is a Solaris invention so most SVR4 +systems have this weakness. On Solaris, strace runs as a single +controlling process. This is a big improvement if you are debugging a +lot of processes at once. + +There is no thread support but it wouldn't be very difficult to add it. + +On UnixWare using the -f option to follow forked children sometimes shows +many "unfinished" system calls as strace bounces between each runnable child. +A crude workaround for this is available by adding + + #define POLL_HACK 1 + +to the config.h file. This forces strace to check whether the last process +has finished a system call before polling other processes for events. + +Wichert Akkerman <wakkerma@debian.org>
diff --git a/strace-4.5.20/TODO b/strace-4.5.20/TODO new file mode 100644 index 0000000..1d6a8e8 --- /dev/null +++ b/strace-4.5.20/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/strace-4.5.20/acinclude.m4 b/strace-4.5.20/acinclude.m4 new file mode 100644 index 0000000..da66c64 --- /dev/null +++ b/strace-4.5.20/acinclude.m4
@@ -0,0 +1,299 @@ +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([[#include <sys/types.h> +#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 whether statfs64 is defined. +AC_DEFUN([AC_STATFS64], +[AC_MSG_CHECKING(for statfs64 in sys/vfs.h) +AC_CACHE_VAL(ac_cv_type_statfs64, +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef LINUX +#include <linux/types.h> +#include <sys/vfs.h> +#endif]], [[struct statfs64 st;]])],[ac_cv_type_statfs64=yes],[ac_cv_type_statfs64=no])]) +AC_MSG_RESULT($ac_cv_type_statfs64) +if test "$ac_cv_type_statfs64" = yes +then + AC_DEFINE([HAVE_STATFS64], 1, +[Define if statfs64 is available in sys/vfs.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/strace-4.5.20/aclocal.m4 b/strace-4.5.20/aclocal.m4 new file mode 100644 index 0000000..68578ce --- /dev/null +++ b/strace-4.5.20/aclocal.m4
@@ -0,0 +1,1007 @@ +# generated automatically by aclocal 1.11.1a -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009, 2010 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. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, +[m4_warning([this file was generated for autoconf 2.65. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 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. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.11' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.11.1a], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.11.1a])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# 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, 2006, 2008 +# 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 9 + +# 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])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +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, 2006, 2009, +# 2010 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 11 + +# 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], UPC, [depcc="$UPC" am_compiler_list=], + [$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 + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + 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 + + # 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. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + 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 + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj 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='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# 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 5 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + 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. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/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, 2006, 2008, 2009 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 16 + +# 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.62])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 +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +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 +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])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) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +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 +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) + +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + + +# 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_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005, 2008 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 +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +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, 2008 +# 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 5 + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless `enable' is passed literally. +# For symmetry, `disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], +[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + 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, 2009 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_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.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 +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +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, 2004, 2005, 2008 +# 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 6 + +# 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 +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# 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, 2006 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 for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008 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_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], +[m4_foreach_w([_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, 2008 +# 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 5 + +# 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 +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + +# 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="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006, 2008 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_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# 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/strace-4.5.20/bjm.c b/strace-4.5.20/bjm.c new file mode 100644 index 0000000..6c948d5 --- /dev/null +++ b/strace-4.5.20/bjm.c
@@ -0,0 +1,213 @@ +/* + * 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$ + */ +#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> +#include <sys/user.h> +#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(struct tcb *tcp) +{ + if (entering(tcp)) { + printstr(tcp, tcp->u_arg[0], -1); + tprintf(", "); + printxval(which, tcp->u_arg[1], "QM_???"); + tprintf(", "); + } else { + size_t ret; + + if (!verbose(tcp) || syserror(tcp) || + umove(tcp, tcp->u_arg[4], &ret) < 0) { + tprintf("%#lx, %lu, %#lx", tcp->u_arg[2], + tcp->u_arg[3], tcp->u_arg[4]); + } else if (tcp->u_arg[1]==QM_INFO) { + struct module_info mi; + if (umove(tcp, tcp->u_arg[2], &mi) < 0) { + tprintf("%#lx, ", tcp->u_arg[2]); + } else { + tprintf("{address=%#lx, size=%lu, flags=", + mi.addr, mi.size); + printflags(modflags, mi.flags, "MOD_???"); + tprintf(", usecount=%lu}, ", mi.usecount); + } + tprintf("%Zu", ret); + } else if ((tcp->u_arg[1]==QM_MODULES) || + (tcp->u_arg[1]==QM_DEPS) || + (tcp->u_arg[1]==QM_REFS)) { + tprintf("{"); + if (!abbrev(tcp)) { + char* data = malloc(tcp->u_arg[3]); + char* mod = data; + size_t idx; + + if (!data) { + fprintf(stderr, "out of memory\n"); + tprintf(" /* %Zu entries */ ", ret); + } else { + if (umoven(tcp, tcp->u_arg[2], + tcp->u_arg[3], data) < 0) { + tprintf(" /* %Zu entries */ ", ret); + } else { + for (idx=0; idx<ret; idx++) { + tprintf("%s%s", + (idx ? ", " : ""), + mod); + mod += strlen(mod)+1; + } + } + free(data); + } + } else + tprintf(" /* %Zu entries */ ", ret); + tprintf("}, %Zu", ret); + } else if (tcp->u_arg[1]==QM_SYMBOLS) { + tprintf("{"); + if (!abbrev(tcp)) { + char* data = malloc(tcp->u_arg[3]); + struct module_symbol* sym = (struct module_symbol*)data; + size_t idx; + + if (!data) { + fprintf(stderr, "out of memory\n"); + tprintf(" /* %Zu entries */ ", ret); + } else { + if (umoven(tcp, tcp->u_arg[2], + tcp->u_arg[3], data) < 0) { + tprintf(" /* %Zu entries */ ", ret); + } else { + for (idx=0; idx<ret; idx++) { + tprintf("%s{name=%s, value=%lu}", + (idx ? " " : ""), + 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)) { + tprintf("%#lx, ", tcp->u_arg[0]); + tprintf("%lu, ", tcp->u_arg[1]); + printstr(tcp, tcp->u_arg[2], -1); + } + return 0; +} +#endif /* LINUX */
diff --git a/strace-4.5.20/config.guess b/strace-4.5.20/config.guess new file mode 100755 index 0000000..c2246a4 --- /dev/null +++ b/strace-4.5.20/config.guess
@@ -0,0 +1,1502 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Free Software Foundation, Inc. + +timestamp='2009-12-30' + +# 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., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, 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. Please send patches (context +# diff format) to <config-patches@gnu.org> and include a 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. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + +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, 2005, 2006, 2007, 2008, 2009, 2010 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 ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # 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 "$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 ; set_cc_for_build= ;' + +# 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 ;; + sh5el) machine=sh5le-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 -q __ELF__ + 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 ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + 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 ;; + 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 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + 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 ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + 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 ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + 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 ;; + 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 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + 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 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # 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 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + 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 && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + 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 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????: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 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + 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 ;; + *: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 + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + 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 ;; + *:AIX:*:[456]) + 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 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 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 + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 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 && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + 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 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + 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 ;; + 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 ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + 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 ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *: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 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + 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 -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #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; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + 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 ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + 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 ;; + 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 ;; + 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 ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + 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 ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + 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 ;; + 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 ;; + 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 i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + 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 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 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; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + 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; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *: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 ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says <Richard.M.Bartel@ccMail.Census.GOV> + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + 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 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *: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 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *: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 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; +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\n"); 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 && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# 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 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + 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 + + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +and + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +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/strace-4.5.20/config.h.in b/strace-4.5.20/config.h.in new file mode 100644 index 0000000..0ac3d8a --- /dev/null +++ b/strace-4.5.20/config.h.in
@@ -0,0 +1,484 @@ +/* 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 AVR32 architecture. */ +#undef AVR32 + +/* Define for the Blackfin architecture. */ +#undef BFIN + +/* Define for the CRISv10 architecture. */ +#undef CRISV10 + +/* Define for the CRISv32 architecture. */ +#undef CRISV32 + +/* 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/cachectl.h> header file. */ +#undef HAVE_ASM_CACHECTL_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 `fork' function. */ +#undef HAVE_FORK + +/* 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/capability.h> header file. */ +#undef HAVE_LINUX_CAPABILITY_H + +/* 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 if statfs64 is available in sys/vfs.h. */ +#undef HAVE_STATFS64 + +/* Define to 1 if stdbool.h conforms to C99. */ +#undef HAVE_STDBOOL_H + +/* 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 `dqb_curblocks' is a member of `struct dqblk'. */ +#undef HAVE_STRUCT_DQBLK_DQB_CURBLOCKS + +/* Define to 1 if the system has the type `struct ia64_fpreg'. */ +#undef HAVE_STRUCT_IA64_FPREG + +/* Define to 1 if `msg_control' is a 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 the system has the type `struct sigcontext'. */ +#undef HAVE_STRUCT_SIGCONTEXT + +/* Define to 1 if `sc_hi2' is a member of `struct sigcontext'. */ +#undef HAVE_STRUCT_SIGCONTEXT_SC_HI2 + +/* Define to 1 if the system has the type `struct sigcontext_struct'. */ +#undef HAVE_STRUCT_SIGCONTEXT_STRUCT + +/* Define to 1 if `sin6_scope_id' is a member of `struct sockaddr_in6'. */ +#undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID + +/* Define to 1 if `st_aclcnt' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ACLCNT + +/* Define to 1 if `st_blksize' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_BLKSIZE + +/* Define to 1 if `st_blocks' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_BLOCKS + +/* Define to 1 if `st_flags' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_FLAGS + +/* Define to 1 if `st_fstype' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_FSTYPE + +/* Define to 1 if `st_gen' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_GEN + +/* Define to 1 if `st_level' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_LEVEL + +/* Define to 1 if `st_rdev' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_RDEV + +/* Define to 1 if `ACCEPTOR_id' is a member of `struct T_conn_res'. */ +#undef HAVE_STRUCT_T_CONN_RES_ACCEPTOR_ID + +/* Define to 1 if `QUEUE_ptr' is a 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 the system has the type `_Bool'. */ +#undef HAVE__BOOL + +/* 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 home page for this package. */ +#undef PACKAGE_URL + +/* 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 the Tile architecture */ +#undef TILE + +/* Define for UnixWare systems. */ +#undef UNIXWARE + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif + + +/* Version number of package */ +#undef VERSION + +/* Define for the AMD x86-64 architecture. */ +#undef X86_64 + +/* Define to 1 if on MINIX. */ +#undef _MINIX + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +#undef _POSIX_1_SOURCE + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +#undef _POSIX_SOURCE + +/* 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/strace-4.5.20/config.sub b/strace-4.5.20/config.sub new file mode 100755 index 0000000..8518609 --- /dev/null +++ b/strace-4.5.20/config.sub
@@ -0,0 +1,1708 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Free Software Foundation, Inc. + +timestamp='2009-12-31' + +# 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., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, 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 GNU 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. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# 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, 2005, 2006, 2007, 2008, 2009, 2010 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 ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # 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 ;; + + * ) + 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-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-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 | -microblaze) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -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 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -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/'` + ;; + -sco5v6*) + # 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 | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e \ + | we32k \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | picochip) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + # 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-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # 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 + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + 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 + ;; + cr16) + basic_machine=cr16-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 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + 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 + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze) + basic_machine=microblaze-xilinx + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + 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 + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + 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 + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + 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 + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + 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 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + 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 + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + 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 + ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; + 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 + ;; + z80-*-coff) + basic_machine=z80-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 + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + 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. + -auroraux) + os=-auroraux + ;; + -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* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -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* | -cegcc* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -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* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # 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* | -haiku* \ + | -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 + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -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 + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-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 + ;; + mep-*) + os=-elf + ;; + 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 + ;; + *-haiku) + os=-haiku + ;; + *-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 + ;; + -cnk*|-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 + +# 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/strace-4.5.20/configure b/strace-4.5.20/configure new file mode 100755 index 0000000..8213bb3 --- /dev/null +++ b/strace-4.5.20/configure
@@ -0,0 +1,7905 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.65 for strace 4.5.20. +# +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +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 +IFS=$as_save_IFS + + ;; +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 + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error ERROR [LINENO LOG_FD] +# --------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with status $?, using 1 if that was 0. +as_fn_error () +{ + as_status=$?; test $as_status -eq 0 && as_status=1 + if test "$3"; then + as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + fi + $as_echo "$as_me: error: $1" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; 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 + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# 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 + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_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 sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# 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'" + + +test -n "$DJDIR" || exec 7<&0 </dev/null +exec 6>&1 + +# 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` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='strace' +PACKAGE_TARNAME='strace' +PACKAGE_VERSION='4.5.20' +PACKAGE_STRING='strace 4.5.20' +PACKAGE_BUGREPORT='' +PACKAGE_URL='' + +ac_unique_file="strace.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include <stdio.h> +#ifdef HAVE_SYS_TYPES_H +# include <sys/types.h> +#endif +#ifdef HAVE_SYS_STAT_H +# include <sys/stat.h> +#endif +#ifdef STDC_HEADERS +# include <stdlib.h> +# include <stddef.h> +#else +# ifdef HAVE_STDLIB_H +# include <stdlib.h> +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include <memory.h> +# endif +# include <string.h> +#endif +#ifdef HAVE_STRINGS_H +# include <strings.h> +#endif +#ifdef HAVE_INTTYPES_H +# include <inttypes.h> +#endif +#ifdef HAVE_STDINT_H +# include <stdint.h> +#endif +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +PERL +WARNFLAGS +EGREP +GREP +CPP +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +FREEBSD_FALSE +FREEBSD_TRUE +SVR4_FALSE +SVR4_TRUE +SUNOS4_FALSE +SUNOS4_TRUE +X86_64_FALSE +X86_64_TRUE +I386_FALSE +I386_TRUE +LINUX_FALSE +LINUX_TRUE +arch +opsys +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_maintainer_mode +enable_dependency_tracking +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# 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. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +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 + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -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) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$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 ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$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 ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + 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 ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$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_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=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 ;; + + -*) as_fn_error "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information." + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_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'` + as_fn_error "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" +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 + $as_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 + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error "pwd does not report name of working directory" + + +# 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 the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + 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 + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# 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.20 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 \`..'] + +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] + --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] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/strace] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_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.20:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --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> + LIBS libraries to pass to the linker, e.g. -l<library> + CPPFLAGS (Objective) 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. + +Report bugs to the package provider. +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested 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 + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +strace configure 4.5.20 +generated by GNU Autoconf 2.65 + +Copyright (C) 2010 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 +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_mongrel + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_compile + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_type + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES +# ---------------------------------------------------- +# Tries to find if the field MEMBER exists in type AGGR, after including +# INCLUDES, setting cache variable VAR accordingly. +ac_fn_c_check_member () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 +$as_echo_n "checking for $2.$3... " >&6; } +if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (sizeof ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + eval "$4=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$4 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_member + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case <limits.h> declares $2. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $2 innocuous_$2 + +/* Tell GNU C headers to include stubs. */ +#define __need_GNU_STUBS_H + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); 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 $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* 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_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + if test "$GCC" = yes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#undef $2 +/* Declare this function with the same prototype as __builtin_$2. + This removes a warning about conflicting types for built-in function $2 */ +__typeof__(__builtin_$2) $2; +__typeof__(__builtin_$2) *f = $2; + +int +main () +{ +return f != $2; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + eval "$3=no" + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_func + +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5 +$as_echo_n "checking whether $2 is declared... " >&6; } +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +#ifndef $2 + (void) $2; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_decl +cat >config.log <<_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.20, which was +generated by GNU Autoconf 2.65. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +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` +/usr/bin/hostinfo = `(/usr/bin/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=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&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_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=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append 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 + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset 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: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +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, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > 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 + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + ac_site_file1=$CONFIG_SITE +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_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. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_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 $ac_precious_vars; 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,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_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 + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_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. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +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_aux_dir= +for ac_dir in . "$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 + as_fn_error "cannot find install-sh, install.sh, or shtool in . \"$srcdir\"/." "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +ac_config_headers="$ac_config_headers config.h" + +am__api_version='1.11' + +# 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. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then : + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +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. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$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' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; +esac + +# 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". + as_fn_error "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "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 $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then : + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "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 + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +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.20' + + +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"} + +# 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 -' + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-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 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$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. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if test "${ac_cv_build+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if test "${ac_cv_host+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported operating system" >&5 +$as_echo_n "checking for supported operating system... " >&6; } +case "$host_os" in +*linux*) + opsys=linux + +$as_echo "#define LINUX 1" >>confdefs.h + + ;; +sunos4*) + opsys=sunos4 + +$as_echo "#define SUNOS4 1" >>confdefs.h + + ;; +solaris2* | sysv[45]* | irix[56]*) + opsys=svr4 + +$as_echo "#define SVR4 1" >>confdefs.h + + case "$host_os" in + sysv4.2uw*) + +$as_echo "#define UNIXWARE 2" >>confdefs.h + + ;; + sysv5*) + +$as_echo "#define UNIXWARE 7" >>confdefs.h + + ;; + esac + ;; +freebsd*) + opsys=freebsd + +$as_echo "#define FREEBSD 1" >>confdefs.h + + ;; +*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: NO!" >&5 +$as_echo "NO!" >&6; } + as_fn_error "operating system $host_os is not supported by strace" "$LINENO" 5 + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $opsys" >&5 +$as_echo "$opsys" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported architecture" >&5 +$as_echo_n "checking for supported architecture... " >&6; } +case "$host_cpu" in +bfin) + arch=bfin + +$as_echo "#define BFIN 1" >>confdefs.h + + ;; +i[3456]86|pentium) + arch=i386 + +$as_echo "#define I386 1" >>confdefs.h + + ;; +ia64) + arch=ia64 + +$as_echo "#define IA64 1" >>confdefs.h + + ;; +m68k) + arch=m68k + +$as_echo "#define M68K 1" >>confdefs.h + + ;; +sparc64*) + arch=sparc64 + +$as_echo "#define SPARC64 1" >>confdefs.h + + ;; +sparc*) + arch=sparc + +$as_echo "#define SPARC 1" >>confdefs.h + + ;; +mips*) + arch=mips + +$as_echo "#define MIPS 1" >>confdefs.h + + ;; +alpha*) + arch=alpha + +$as_echo "#define ALPHA 1" >>confdefs.h + + ;; +powerpc*) + arch=powerpc + +$as_echo "#define POWERPC 1" >>confdefs.h + + ;; +arm*) + arch=arm + +$as_echo "#define ARM 1" >>confdefs.h + + ;; +avr32*) + arch=avr32 + +$as_echo "#define AVR32 1" >>confdefs.h + + ;; +s390) + arch=s390 + +$as_echo "#define S390 1" >>confdefs.h + + ;; +s390x) + arch=s390x + +$as_echo "#define S390X 1" >>confdefs.h + + ;; +hppa*|parisc*) + arch=hppa + +$as_echo "#define HPPA 1" >>confdefs.h + + ;; +sh64*) + arch=sh64 + +$as_echo "#define SH64 1" >>confdefs.h + + ;; +sh*) + arch=sh + +$as_echo "#define SH 1" >>confdefs.h + + ;; +x86?64*) + arch=x86_64 + +$as_echo "#define X86_64 1" >>confdefs.h + + ;; +cris|crisv10) + arch=crisv10 + +$as_echo "#define CRISV10 1" >>confdefs.h + + ;; +crisv32) + arch=crisv32 + +$as_echo "#define CRISV32 1" >>confdefs.h + + ;; +tile*) + arch=tile + +$as_echo "#define TILE 1" >>confdefs.h + + ;; +*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: NO!" >&5 +$as_echo "NO!" >&6; } + as_fn_error "architecture $host_cpu is not supported by strace" "$LINENO" 5 + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $arch" >&5 +$as_echo "$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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +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 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "no acceptable C compiler found in \$PATH +See \`config.log' for more details." "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM 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. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ as_fn_set_status 77 +as_fn_error "C compiler cannot create executables +See \`config.log' for more details." "$LINENO" 5; }; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; 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 | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdio.h> +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if test "${ac_cv_objext+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot compute suffix of object files: cannot compile +See \`config.log' for more details." "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 -std 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 -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 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 +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +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 +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-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='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&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 + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + 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 + + # 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. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + 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 + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$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 + + + +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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&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 : + $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # 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 + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." "$LINENO" 5; } +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 + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if test "${ac_cv_path_GREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <float.h> + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core 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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ctype.h> +#include <stdlib.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)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +if test "x$ac_cv_header_minix_config_h" = x""yes; then : + MINIX=yes +else + MINIX= +fi + + + if test "$MINIX" = yes; then + +$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h + + +$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h + + +$as_echo "#define _MINIX 1" >>confdefs.h + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if test "${ac_cv_safe_to_define___extensions__+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_safe_to_define___extensions__=yes +else + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h + + $as_echo "#define _ALL_SOURCE 1" >>confdefs.h + + $as_echo "#define _GNU_SOURCE 1" >>confdefs.h + + $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for primary include directory" >&5 +$as_echo_n "checking for primary include directory... " >&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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $includedir" >&5 +$as_echo "$includedir" >&6; } + + +if test "x$opsys" = "xsunos4" && test "x$arch" = "xsparc" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for valid machine include directory" >&5 +$as_echo_n "checking for valid machine include directory... " >&6; } + if test -d "$includedir/sun4" + then + rm -f machine + ln -s $includedir/sun4 machine + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define SUNOS4_KERNEL_ARCH_KLUDGE 1" >>confdefs.h + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&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 : + $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # 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 + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." "$LINENO" 5; } +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 $ac_cv_c_compiler_gnu = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 +$as_echo_n "checking whether $CC needs -traditional... " >&6; } +if test "${ac_cv_prog_gcc_traditional+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_pattern="Autoconf.*'x'" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 +$as_echo "$ac_cv_prog_gcc_traditional" >&6; } + if test $ac_cv_prog_gcc_traditional = yes; then + CC="$CC -traditional" + fi +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if test "${ac_cv_c_const+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 cs; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* 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"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 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; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_const=yes +else + ac_cv_c_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +$as_echo "#define const /**/" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <float.h> + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core 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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ctype.h> +#include <stdlib.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)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 +$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } +if test "${ac_cv_header_stdbool_h+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <stdbool.h> +#ifndef bool + "error: bool is not defined" +#endif +#ifndef false + "error: false is not defined" +#endif +#if false + "error: false is not 0" +#endif +#ifndef true + "error: true is not defined" +#endif +#if true != 1 + "error: true is not 1" +#endif +#ifndef __bool_true_false_are_defined + "error: __bool_true_false_are_defined is not defined" +#endif + + struct s { _Bool s: 1; _Bool t; } s; + + char a[true == 1 ? 1 : -1]; + char b[false == 0 ? 1 : -1]; + char c[__bool_true_false_are_defined == 1 ? 1 : -1]; + char d[(bool) 0.5 == true ? 1 : -1]; + bool e = &s; + char f[(_Bool) 0.0 == false ? 1 : -1]; + char g[true]; + char h[sizeof (_Bool)]; + char i[sizeof s.t]; + enum { j = false, k = true, l = false * true, m = true * 256 }; + /* The following fails for + HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ + _Bool n[m]; + char o[sizeof n == m * sizeof n[0] ? 1 : -1]; + char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; +# if defined __xlc__ || defined __GNUC__ + /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 + reported by James Lemley on 2005-10-05; see + http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html + This test is not quite right, since xlc is allowed to + reject this program, as the initializer for xlcbug is + not one of the forms that C requires support for. + However, doing the test right would require a runtime + test, and that would make cross-compilation harder. + Let us hope that IBM fixes the xlc bug, and also adds + support for this kind of constant expression. In the + meantime, this test will reject xlc, which is OK, since + our stdbool.h substitute should suffice. We also test + this with GCC, where it should work, to detect more + quickly whether someone messes up the test in the + future. */ + char digs[] = "0123456789"; + int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1); +# endif + /* Catch a bug in an HP-UX C compiler. See + http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + */ + _Bool q = true; + _Bool *pq = &q; + +int +main () +{ + + *pq |= q; + *pq |= ! q; + /* Refer to every declared value, to avoid compiler optimizations. */ + return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + + !m + !n + !o + !p + !q + !pq); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdbool_h=yes +else + ac_cv_header_stdbool_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 +$as_echo "$ac_cv_header_stdbool_h" >&6; } +ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" +if test "x$ac_cv_type__Bool" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE__BOOL 1 +_ACEOF + + +fi + +if test $ac_cv_header_stdbool_h = yes; then + +$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h + +fi + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do + as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 +$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> +#include <$ac_hdr> + +int +main () +{ +if ((DIR *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_ac_Header=yes" +else + eval "$as_ac_Header=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$as_ac_Header + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_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 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if test "${ac_cv_search_opendir+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dir; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if test "${ac_cv_search_opendir+set}" = set; then : + break +fi +done +if test "${ac_cv_search_opendir+set}" = set; then : + +else + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if test "${ac_cv_search_opendir+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} +_ACEOF +for ac_lib in '' x; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if test "${ac_cv_search_opendir+set}" = set; then : + break +fi +done +if test "${ac_cv_search_opendir+set}" = set; then : + +else + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 +$as_echo_n "checking whether stat file-mode macros are broken... " >&6; } +if test "${ac_cv_header_stat_broken+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> +#include <sys/stat.h> + +#if defined S_ISBLK && defined S_IFDIR +extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; +#endif + +#if defined S_ISBLK && defined S_IFCHR +extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; +#endif + +#if defined S_ISLNK && defined S_IFREG +extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; +#endif + +#if defined S_ISSOCK && defined S_IFREG +extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stat_broken=no +else + ac_cv_header_stat_broken=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 +$as_echo "$ac_cv_header_stat_broken" >&6; } +if test $ac_cv_header_stat_broken = yes; then + +$as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h + +fi + +ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_blksize" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_blocks" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_aclcnt" "ac_cv_member_struct_stat_st_aclcnt" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_aclcnt" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_ACLCNT 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_flags" "ac_cv_member_struct_stat_st_flags" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_flags" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_fstype" "ac_cv_member_struct_stat_st_fstype" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_fstype" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_FSTYPE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_gen" "ac_cv_member_struct_stat_st_gen" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_gen" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_GEN 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_level" "ac_cv_member_struct_stat_st_level" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_level" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_LEVEL 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_rdev" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_RDEV 1 +_ACEOF + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stat64 in (asm|sys)/stat.h" >&5 +$as_echo_n "checking for stat64 in (asm|sys)/stat.h... " >&6; } +if test "${ac_cv_type_stat64+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.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 +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_stat64=yes +else + ac_cv_type_stat64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_stat64" >&5 +$as_echo "$ac_cv_type_stat64" >&6; } +if test "$ac_cv_type_stat64" = yes +then + +$as_echo "#define HAVE_STAT64 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for statfs64 in sys/vfs.h" >&5 +$as_echo_n "checking for statfs64 in sys/vfs.h... " >&6; } +if test "${ac_cv_type_statfs64+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef LINUX +#include <linux/types.h> +#include <sys/vfs.h> +#endif +int +main () +{ +struct statfs64 st; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_statfs64=yes +else + ac_cv_type_statfs64=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_statfs64" >&5 +$as_echo "$ac_cv_type_statfs64" >&6; } +if test "$ac_cv_type_statfs64" = yes +then + +$as_echo "#define HAVE_STATFS64 1" >>confdefs.h + +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 +$as_echo_n "checking return type of signal handlers... " >&6; } +if test "${ac_cv_type_signal+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> +#include <signal.h> + +int +main () +{ +return *(signal (0, 0)) (0) == 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_signal=int +else + ac_cv_type_signal=void +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 +$as_echo "$ac_cv_type_signal" >&6; } + +cat >>confdefs.h <<_ACEOF +#define RETSIGTYPE $ac_cv_type_signal +_ACEOF + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 +$as_echo_n "checking for uid_t in sys/types.h... " >&6; } +if test "${ac_cv_type_uid_t+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 +$as_echo "$ac_cv_type_uid_t" >&6; } +if test $ac_cv_type_uid_t = no; then + +$as_echo "#define uid_t int" >>confdefs.h + + +$as_echo "#define gid_t int" >>confdefs.h + +fi + +ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" +if test "x$ac_cv_type_mode_t" = x""yes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define mode_t int +_ACEOF + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking type of array argument to getgroups" >&5 +$as_echo_n "checking type of array argument to getgroups... " >&6; } +if test "${ac_cv_type_getgroups+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_type_getgroups=cross +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Thanks to Mike Rendell for this test. */ +$ac_includes_default +#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 int 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 int but getgroups modifies an array + of ints. */ + return n > 0 && gidset[n] != val.gval; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_type_getgroups=gid_t +else + ac_cv_type_getgroups=int +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +if test $ac_cv_type_getgroups = cross; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_getgroups" >&5 +$as_echo "$ac_cv_type_getgroups" >&6; } + +cat >>confdefs.h <<_ACEOF +#define GETGROUPS_T $ac_cv_type_getgroups +_ACEOF + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/types.h defines makedev" >&5 +$as_echo_n "checking whether sys/types.h defines makedev... " >&6; } +if test "${ac_cv_header_sys_types_h_makedev+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> +int +main () +{ +return makedev(0, 0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_header_sys_types_h_makedev=yes +else + ac_cv_header_sys_types_h_makedev=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_types_h_makedev" >&5 +$as_echo "$ac_cv_header_sys_types_h_makedev" >&6; } + +if test $ac_cv_header_sys_types_h_makedev = no; then +ac_fn_c_check_header_mongrel "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_mkdev_h" = x""yes; then : + +$as_echo "#define MAJOR_IN_MKDEV 1" >>confdefs.h + +fi + + + + if test $ac_cv_header_sys_mkdev_h = no; then + ac_fn_c_check_header_mongrel "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_sysmacros_h" = x""yes; then : + +$as_echo "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h + +fi + + + fi +fi + +ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" "#include <signal.h> +" +if test "x$ac_cv_type_sig_atomic_t" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_SIG_ATOMIC_T 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "siginfo_t" "ac_cv_type_siginfo_t" "#include <signal.h> +" +if test "x$ac_cv_type_siginfo_t" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_SIGINFO_T 1 +_ACEOF + + +fi + +ac_fn_c_check_member "$LINENO" "struct sockaddr_in6" "sin6_scope_id" "ac_cv_member_struct_sockaddr_in6_sin6_scope_id" "#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +" +if test "x$ac_cv_member_struct_sockaddr_in6_sin6_scope_id" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1 +_ACEOF + + +fi + +ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default" +if test "x$ac_cv_type_long_long" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_LONG_LONG 1 +_ACEOF + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for little endian long long" >&5 +$as_echo_n "checking for little endian long long... " >&6; } +if test "${ac_cv_have_little_endian_long_long+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + # Should try to guess here +ac_cv_have_little_endian_long_long=no + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_have_little_endian_long_long=yes +else + ac_cv_have_little_endian_long_long=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_little_endian_long_long" >&5 +$as_echo "$ac_cv_have_little_endian_long_long" >&6; } +if test "$ac_cv_have_little_endian_long_long" = yes +then + +$as_echo "#define HAVE_LITTLE_ENDIAN_LONG_LONG 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long off_t" >&5 +$as_echo_n "checking for long long off_t... " >&6; } +if test "${ac_cv_have_long_long_off_t+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + # Should try to guess here +ac_cv_have_long_long_off_t=no + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_have_long_long_off_t=yes +else + ac_cv_have_long_long_off_t=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_long_long_off_t" >&5 +$as_echo "$ac_cv_have_long_long_off_t" >&6; } +if test "$ac_cv_have_long_long_off_t" = yes +then + +$as_echo "#define HAVE_LONG_LONG_OFF_T 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long rlim_t" >&5 +$as_echo_n "checking for long long rlim_t... " >&6; } +if test "${ac_cv_have_long_long_rlim_t+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + # Should try to guess here +ac_cv_have_long_long_rlim_t=no + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_have_long_long_rlim_t=yes +else + ac_cv_have_long_long_rlim_t=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_long_long_rlim_t" >&5 +$as_echo "$ac_cv_have_long_long_rlim_t" >&6; } +if test "$ac_cv_have_long_long_rlim_t" = yes +then + +$as_echo "#define HAVE_LONG_LONG_RLIM_T 1" >>confdefs.h + +fi + +ac_fn_c_check_type "$LINENO" "struct opthdr" "ac_cv_type_struct_opthdr" "#include <sys/socket.h> +" +if test "x$ac_cv_type_struct_opthdr" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_OPTHDR 1 +_ACEOF + + +fi + +ac_fn_c_check_type "$LINENO" "struct t_opthdr" "ac_cv_type_struct_t_opthdr" "#include <sys/tiuser.h> +" +if test "x$ac_cv_type_struct_t_opthdr" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_T_OPTHDR 1 +_ACEOF + + +fi + + +if test x$opsys != xlinux; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lnsl" >&5 +$as_echo_n "checking for main in -lnsl... " >&6; } +if test "${ac_cv_lib_nsl_main+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +int +main () +{ +return main (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_main=yes +else + ac_cv_lib_nsl_main=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_main" >&5 +$as_echo "$ac_cv_lib_nsl_main" >&6; } +if test "x$ac_cv_lib_nsl_main" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBNSL 1 +_ACEOF + + LIBS="-lnsl $LIBS" + +fi + +fi + +for ac_func in \ + fork \ + getdents \ + if_indextoname \ + inet_ntop \ + mctl \ + prctl \ + pread \ + sendmsg \ + sigaction \ + strerror \ + strsignal \ + sys_siglist \ + _sys_siglist \ + +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +eval as_val=\$$as_ac_var + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +for ac_header in \ + inttypes.h \ + ioctls.h \ + libaio.h \ + mqueue.h \ + poll.h \ + stropts.h \ + termio.h \ + sys/acl.h \ + sys/aio.h \ + sys/asynch.h \ + sys/conf.h \ + sys/door.h \ + sys/epoll.h \ + sys/filio.h \ + sys/ioctl.h \ + sys/nscsys.h \ + sys/poll.h \ + sys/ptrace.h \ + sys/reg.h \ + sys/stream.h \ + sys/sysconfig.h \ + sys/tihdr.h \ + sys/tiuser.h \ + sys/uio.h \ + sys/vfs.h \ + asm/cachectl.h \ + asm/sysmips.h \ + linux/capability.h \ + linux/ptrace.h \ + linux/utsname.h \ + +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include <stddef.h> +#include <sys/socket.h> +#include <asm/types.h> +" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +for ac_header in asm/sigcontext.h +do : + ac_fn_c_check_header_compile "$LINENO" "asm/sigcontext.h" "ac_cv_header_asm_sigcontext_h" "#include <signal.h> +" +if test "x$ac_cv_header_asm_sigcontext_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ASM_SIGCONTEXT_H 1 +_ACEOF + +fi + +done + +ac_fn_c_check_type "$LINENO" "struct sigcontext_struct" "ac_cv_type_struct_sigcontext_struct" "#include <signal.h> +" +if test "x$ac_cv_type_struct_sigcontext_struct" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SIGCONTEXT_STRUCT 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct sigcontext" "ac_cv_type_struct_sigcontext" "#include <signal.h> +" +if test "x$ac_cv_type_struct_sigcontext" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SIGCONTEXT 1 +_ACEOF + + +fi + +for ac_header in netinet/tcp.h netinet/udp.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include <netinet/in.h> +" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MP procfs" >&5 +$as_echo_n "checking for MP procfs... " >&6; } +if test "${ac_cv_mp_procfs+set}" = set; then : + $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_mp_procfs=yes +else + ac_cv_mp_procfs=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_mp_procfs" >&5 +$as_echo "$ac_cv_mp_procfs" >&6; } +if test "$ac_cv_mp_procfs" = yes +then + +$as_echo "#define HAVE_MP_PROCFS 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pollable procfs" >&5 +$as_echo_n "checking for pollable procfs... " >&6; } +if test "${ac_cv_pollable_procfs+set}" = set; then : + $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_pollable_procfs=yes +else + ac_cv_pollable_procfs=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pollable_procfs" >&5 +$as_echo "$ac_cv_pollable_procfs" >&6; } +if test "$ac_cv_pollable_procfs" = yes +then + +$as_echo "#define HAVE_POLLABLE_PROCFS 1" >>confdefs.h + +fi + + +ac_fn_c_check_member "$LINENO" "struct msghdr" "msg_control" "ac_cv_member_struct_msghdr_msg_control" "#include <sys/socket.h> +" +if test "x$ac_cv_member_struct_msghdr_msg_control" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1 +_ACEOF + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pr_syscall in struct prstatus" >&5 +$as_echo_n "checking for pr_syscall in struct prstatus... " >&6; } +if test "${ac_cv_struct_pr_syscall+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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 +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_struct_pr_syscall=yes +else + ac_cv_struct_pr_syscall=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_pr_syscall" >&5 +$as_echo "$ac_cv_struct_pr_syscall" >&6; } +if test "$ac_cv_struct_pr_syscall" = yes +then + +$as_echo "#define HAVE_PR_SYSCALL 1" >>confdefs.h + +fi + + +ac_fn_c_check_member "$LINENO" "struct T_conn_res" "QUEUE_ptr" "ac_cv_member_struct_T_conn_res_QUEUE_ptr" "#include <sys/stream.h> +#include <sys/tihdr.h> +" +if test "x$ac_cv_member_struct_T_conn_res_QUEUE_ptr" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_T_CONN_RES_QUEUE_PTR 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct T_conn_res" "ACCEPTOR_id" "ac_cv_member_struct_T_conn_res_ACCEPTOR_id" "#include <sys/stream.h> +#include <sys/tihdr.h> +" +if test "x$ac_cv_member_struct_T_conn_res_ACCEPTOR_id" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_T_CONN_RES_ACCEPTOR_ID 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct __old_kernel_stat" "ac_cv_type_struct___old_kernel_stat" "#include <asm/stat.h> +" +if test "x$ac_cv_type_struct___old_kernel_stat" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT___OLD_KERNEL_STAT 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct pt_all_user_regs" "ac_cv_type_struct_pt_all_user_regs" "#include <sys/ptrace.h> +" +if test "x$ac_cv_type_struct_pt_all_user_regs" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PT_ALL_USER_REGS 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct ia64_fpreg" "ac_cv_type_struct_ia64_fpreg" "#include <sys/ptrace.h> +" +if test "x$ac_cv_type_struct_ia64_fpreg" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IA64_FPREG 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct user_desc" "ac_cv_type_struct_user_desc" "#include <asm/ldt.h> +" +if test "x$ac_cv_type_struct_user_desc" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_USER_DESC 1 +_ACEOF + + +fi + + +ac_fn_c_check_member "$LINENO" "struct dqblk" "dqb_curblocks" "ac_cv_member_struct_dqblk_dqb_curblocks" "#include <sys/quota.h> +" +if test "x$ac_cv_member_struct_dqblk_dqb_curblocks" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_DQBLK_DQB_CURBLOCKS 1 +_ACEOF + + +fi + + +ac_fn_c_check_member "$LINENO" "struct sigcontext" "sc_hi2" "ac_cv_member_struct_sigcontext_sc_hi2" "#include <signal.h> +#ifdef HAVE_ASM_SIGCONTEXT_H +# include <asm/sigcontext.h> +#endif +" +if test "x$ac_cv_member_struct_sigcontext_sc_hi2" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SIGCONTEXT_SC_HI2 1 +_ACEOF + + +fi + + + +ac_fn_c_check_decl "$LINENO" "sys_errlist" "ac_cv_have_decl_sys_errlist" "$ac_includes_default" +if test "x$ac_cv_have_decl_sys_errlist" = x""yes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_SYS_ERRLIST $ac_have_decl +_ACEOF + +ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "#include <signal.h> +" +if test "x$ac_cv_have_decl_sys_siglist" = x""yes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_SYS_SIGLIST $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "_sys_siglist" "ac_cv_have_decl__sys_siglist" "#include <signal.h> +" +if test "x$ac_cv_have_decl__sys_siglist" = x""yes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL__SYS_SIGLIST $ac_have_decl +_ACEOF + + +# Extract the first word of "perl", so it can be a program name with args. +set dummy perl; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PERL+set}" = set; then : + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PERL=$ac_cv_path_PERL +if test -n "$PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 +$as_echo "$PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "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, we kill variables containing newlines. +# 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. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + 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" && + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + 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}' + +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_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${LINUX_TRUE}" && test -z "${LINUX_FALSE}"; then + as_fn_error "conditional \"LINUX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${I386_TRUE}" && test -z "${I386_FALSE}"; then + as_fn_error "conditional \"I386\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${X86_64_TRUE}" && test -z "${X86_64_FALSE}"; then + as_fn_error "conditional \"X86_64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${SUNOS4_TRUE}" && test -z "${SUNOS4_FALSE}"; then + as_fn_error "conditional \"SUNOS4\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${SVR4_TRUE}" && test -z "${SVR4_FALSE}"; then + as_fn_error "conditional \"SVR4\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${FREEBSD_TRUE}" && test -z "${FREEBSD_FALSE}"; then + as_fn_error "conditional \"FREEBSD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: ${CONFIG_STATUS=./config.status} +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $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} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +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 +IFS=$as_save_IFS + + ;; +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 + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error ERROR [LINENO LOG_FD] +# --------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with status $?, using 1 if that was 0. +as_fn_error () +{ + as_status=$?; test $as_status -eq 0 && as_status=1 + if test "$3"; then + as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 + fi + $as_echo "$as_me: error: $1" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; 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 + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# 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 + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# 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'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by strace $as_me 4.5.20, which was +generated by GNU Autoconf 2.65. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + 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 the package provider." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +strace config.status 4.5.20 +configured by $0, generated by GNU Autoconf 2.65, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +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 + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + 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 || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + + *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + 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 against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX")` && + test -n "$tmp" && test -d "$tmp" +} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' <conf$$subs.awk | sed ' +/^[^""]/{ + N + s/\n// +} +' >>$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || as_fn_error "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# 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 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; then + break + elif $ac_last_try; then + as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' <confdefs.h | sed ' +s/'"$ac_delim"'/"\\\ +"/g' >>$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #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. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { as_fn_set_status 1 +as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5; };; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # 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. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin" \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;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&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || as_fn_error "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + 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. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_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=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# 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 || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi +
diff --git a/strace-4.5.20/configure.ac b/strace-4.5.20/configure.ac new file mode 100644 index 0000000..76f55d2 --- /dev/null +++ b/strace-4.5.20/configure.ac
@@ -0,0 +1,305 @@ +dnl Process this file with autoconf to create configure. Use autoreconf. +AC_PREREQ(2.57) +AC_INIT([strace],[4.5.20]) +AC_CONFIG_SRCDIR([strace.c]) +AC_CONFIG_AUX_DIR([.]) +AM_CONFIG_HEADER([config.h]) +AM_INIT_AUTOMAKE([foreign check-news dist-bzip2 no-dist-gzip]) +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 +bfin) + arch=bfin + AC_DEFINE([BFIN], 1, [Define for the Blackfin architecture.]) + ;; +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.]) + ;; +avr32*) + arch=avr32 + AC_DEFINE([AVR32], 1, [Define for the AVR32 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.]) + ;; +sh64*) + arch=sh64 + AC_DEFINE([SH64], 1, [Define for the SH64 architecture.]) + ;; +sh*) + arch=sh + AC_DEFINE([SH], 1, [Define for the SH architecture.]) + ;; +x86?64*) + arch=x86_64 + AC_DEFINE([X86_64], 1, [Define for the AMD x86-64 architecture.]) + ;; +cris|crisv10) + arch=crisv10 + AC_DEFINE([CRISV10], 1, [Define for the CRISv10 architecture.]) + ;; +crisv32) + arch=crisv32 + AC_DEFINE([CRISV32], 1, [Define for the CRISv32 architecture.]) + ;; +tile*) + arch=tile + AC_DEFINE([TILE], 1, [Define for the Tile 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_STDBOOL +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_STATFS64 + +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([ \ + fork \ + getdents \ + if_indextoname \ + inet_ntop \ + mctl \ + prctl \ + pread \ + sendmsg \ + sigaction \ + strerror \ + strsignal \ + sys_siglist \ + _sys_siglist \ +]) +AC_CHECK_HEADERS([ \ + inttypes.h \ + ioctls.h \ + libaio.h \ + mqueue.h \ + poll.h \ + stropts.h \ + termio.h \ + sys/acl.h \ + sys/aio.h \ + sys/asynch.h \ + sys/conf.h \ + sys/door.h \ + sys/epoll.h \ + sys/filio.h \ + sys/ioctl.h \ + sys/nscsys.h \ + sys/poll.h \ + sys/ptrace.h \ + sys/reg.h \ + sys/stream.h \ + sys/sysconfig.h \ + sys/tihdr.h \ + sys/tiuser.h \ + sys/uio.h \ + sys/vfs.h \ + asm/cachectl.h \ + asm/sysmips.h \ + linux/capability.h \ + linux/ptrace.h \ + linux/utsname.h \ +], [], []) +AC_CHECK_HEADERS([linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h], + [], [], [#include <stddef.h> +#include <sys/socket.h> +#include <asm/types.h>]) +AC_CHECK_HEADERS([asm/sigcontext.h], [], [], [#include <signal.h>]) +AC_CHECK_TYPES([struct sigcontext_struct, + struct sigcontext],,, [#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_MEMBERS([struct dqblk.dqb_curblocks],,, [#include <sys/quota.h>]) + +AC_CHECK_MEMBERS([struct sigcontext.sc_hi2],,, [#include <signal.h> +#ifdef HAVE_ASM_SIGCONTEXT_H +# include <asm/sigcontext.h> +#endif]) + + +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/strace-4.5.20/count.c b/strace-4.5.20/count.c new file mode 100644 index 0000000..d0ea016 --- /dev/null +++ b/strace-4.5.20/count.c
@@ -0,0 +1,253 @@ +/* + * 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) 2004 Roland McGrath <roland@redhat.com> + * Copyright (c) 2006 Dmitry V. Levin <ldv@altlinux.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$ + */ + +#include "defs.h" + +struct call_counts { + struct timeval time; + int calls, errors; +}; + +static struct call_counts *countv[SUPPORTED_PERSONALITIES]; +#define counts (countv[current_personality]) + +static struct timeval shortest = { 1000000, 0 }; + +int +count_syscall(struct tcb *tcp, struct timeval *tv) +{ + if (tcp->scno < 0 || tcp->scno >= nsyscalls) + return 0; + + if (!counts) + { + counts = calloc(nsyscalls, sizeof(*counts)); + if (!counts) + { + 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); +#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 */ + if (tv_cmp(tv, &shortest) < 0) + shortest = *tv; + tv_add(&counts[tcp->scno].time, &counts[tcp->scno].time, tv); + + return 0; +} + +static int +time_cmp(void *a, void *b) +{ + return -tv_cmp(&counts[*((int *) a)].time, + &counts[*((int *) b)].time); +} + +static int +syscall_cmp(void *a, void *b) +{ + return strcmp(sysent[*((int *) a)].sys_name, + sysent[*((int *) b)].sys_name); +} + +static int +count_cmp(void *a, void *b) +{ + int m = counts[*((int *) a)].calls; + int 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(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(int n) +{ + overhead.tv_sec = n / 1000000; + overhead.tv_usec = n % 1000000; +} + +static void +call_summary_pers(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 = calloc(sizeof(int), nsyscalls); + + if (!sorted_count) + { + fprintf(stderr, "strace: out of memory for call summary\n"); + return; + } + + 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 %11.6f %11ld %9d %9.9s %s\n", + percent, tv_float(&counts[j].time), + (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 %11.6f %11.11s %9d %9.9s %s\n", + "100.00", tv_float(&tv_cum), "", + call_cum, error_str, "total"); +} + +void +call_summary(FILE *outf) +{ + int i, old_pers = current_personality; + + for (i = 0; i < SUPPORTED_PERSONALITIES; ++i) + { + if (!countv[i]) + continue; + + if (current_personality != i) + set_personality(i); + if (i) + fprintf(outf, + "System call usage summary for %u bit mode:\n", + personality_wordsize[current_personality] * 8); + call_summary_pers(outf); + } + + if (old_pers != current_personality) + set_personality(old_pers); +}
diff --git a/strace-4.5.20/debian/changelog b/strace-4.5.20/debian/changelog new file mode 100644 index 0000000..c71a9cd --- /dev/null +++ b/strace-4.5.20/debian/changelog
@@ -0,0 +1,746 @@ +strace (4.5.20-1) unstable; urgency=low + + [ Dmitry V. Levin ] + * New upstream version. + + Corrected decoding of 64bit syscalls, closes: #570603 + + Corrected getsockopt decoding on architectures where + sizeof(long) > sizeof(int), closes: #494844 + + Corrected decoding of epoll_pwait, closes: #513014 + + Implemented -C option to combine regular and -c output, closes: #466196 + + [ Frederik Schüler ] + * Update standards-version to 3.8.4. + * debian/rules: allow parallel building. + * debian/rules: comment out verbose build, only needed for debugging. + * debian/rules: clean up clean: target, dh_clean does most of the work + already. + * debian/rules: use *-stamp instead of stamp-*, so dh_clean can tidy + up for us. + + -- Frederik Schüler <fs@debian.org> Tue, 13 Apr 2010 13:02:57 +0200 + +strace (4.5.19-2) unstable; urgency=low + + * Add sparc64 to the architectures list, closes: #560062 + * Fix FTBFS, thanks to Aurelien Jarno <aurelien@aurel32.net> for pointing + out the solution. Closes: #560516 + * Rebuild as normal package, closes: #566968 + * Update standards-version to 3.8.3. + * Lower package priority to optional, matching the archive override. + * Add watch file. + + -- Frederik Schüler <fs@debian.org> Tue, 26 Jan 2010 12:20:51 +0100 + +strace (4.5.19-1) unstable; urgency=low + + [ Dmitry V. Levin ] + * New upstream release. + + Fixed FTBFS on armel, closes: #520084, #535564 + + Marked sendfile(2) as a network syscall, closes: #509499 + + Fixed syscall numbers for tee and sync_file_range, closes: #503124 + + Corrected accept(2) decoding, closes: #507573 + + Changed strace to exit/kill with traced process + exitcode/signal, closes: #37665 + + [ Frederik Schüler ] + * Move myself from uploaders to maintainers, and drop Roland from the list, + closes: #521458 + * Apply hppa fixes, thanks to Carlos O'Donell <carlos@systemhalted.org> + and Helge Deller <deller@gmx.de> for the fixes, closes: #546619, #437928 + * Update standards-version to 3.8.1. + + -- Frederik Schüler <fs@debian.org> Mon, 05 Oct 2009 22:39:54 +0200 + +strace (4.5.18-1) unstable; urgency=low + + * New upstream release, closes: #515655 + + Fix FTBFS, closes: #518852 + * Backported patch from CVS: Fix support for NUL-terminated + string, closes: #508484 + * Build-depend on debhelper (>= 7.0.0). + + -- Frederik Schüler <fs@debian.org> Mon, 09 Mar 2009 14:39:42 +0100 + +strace (4.5.17+cvs080723-2) unstable; urgency=low + + * Pull Fix for sparc FTBFS from CVS, closes: #492774 + * Make strace64 priority extra. + + -- Frederik Schüler <fs@debian.org> Sat, 02 Aug 2008 10:36:59 +0200 + +strace (4.5.17+cvs080723-1) unstable; urgency=low + + * New upstream cvs snapshot. + - fixes arm and armel FTBFS. + + -- Frederik Schüler <fs@debian.org> Wed, 23 Jul 2008 15:23:22 +0200 + +strace (4.5.17-1) unstable; urgency=low + + * New upstream release. + + -- Frederik Schüler <fs@debian.org> Sat, 19 Jul 2008 21:38:30 +0200 + +strace (4.5.16+cvs20080708-2) unstable; urgency=low + + * Rerun autotools in correct order. + * Add strace64 package on i386, powerpc, s390 and sparc, + closes: #491167, #491188 + + -- Frederik Schüler <fs@debian.org> Thu, 17 Jul 2008 17:21:27 +0200 + +strace (4.5.16+cvs20080708-1) unstable; urgency=low + + * New upstream snapshot. + + Fix chmod/chown typo in debian/rules, closes: #459255. + + Install strace-graph too, closes: 469068. + + Fix m68k build, closes: 456879. + + Arm updates, closes: #441000. + + fix build on mips/mipsel, closes: #448802. + + show poll() parameters before blocking, closes: #369651. + + use dh_strip instead of install -s, closes: #438055, #396682. + + fix sparc build, closes: #469379. + * Acknowledge NMU, closes: #469380. + * Remove Wichert Akkerman from uploaders list. + * Bump standards version to 3.8.0. + - Add Homepage field. + * Add dh_md5sums call, closes: #439428. + * Fix dpkg-gencontrol call. + * Update debian/copyright. + + -- Frederik Schüler <fs@debian.org> Tue, 01 Jul 2008 23:05:51 +0200 + +strace (4.5.16-1) unstable; urgency=low + + * New upstream version. + + 64-bit builds, closes: #435303. + + LFS build fix, closes: #385310. + + Fix multithread issues + + Fix spurious SIGSTOP on early interrupt. + + Fix utime for biarch. + + Fix -u error message. + + Better futex syscall printing. + + Fix argv/envp printing with small -s settings, and for biarch. + + New syscalls: getcpu, eventfd, timerfd, signalfd, epoll_pwait, + move_pages, utimensat. + + -- Roland McGrath <frob@debian.org> Fri, 03 Aug 2007 03:24:21 -0700 + +strace (4.5.15-1) unstable; urgency=high + + [ Roland McGrath ] + * New upstream version. + + Fix -ff -o behavior, closes: #353935. + + Fail when nonoption args follow -p switches, closes: #361302. + + Fix semtimedop, closes: #340239. + + ARM support fixes, closes: #360152, #360154. + + [ Frederik Schüler ] + * Fix configure script, closes: #428997 + + -- Frederik Schüler <fs@debian.org> Fri, 22 Jun 2007 16:28:08 +0000 + +strace (4.5.14-2) unstable; urgency=low + + * New comaintainer. + * Fix build failure with linux-2.6.18, thanks to Andreas Henriksson for the + patch, closes: #392556. + * Fix build with libc6 2.5. + * Acknowledge NMUs, closes: #315500, #355733 + + -- Frederik Schüler <fs@debian.org> Thu, 26 Oct 2006 22:11:25 +0200 + +strace (4.5.14-1) unstable; urgency=low + + * New upstream version. + + Fix crash in printing sysctl, closes: #339117. + + Respect DEB_BUILD_OPTIONS=nostrip, closes: #325132. + + Fix ipc syscall decoding, closes: #340239. + + Add missing source files to tarball, closes: #336197. + + Build on armeb, closes: #335681. + + -- Roland McGrath <frob@debian.org> Mon, 16 Jan 2006 22:17:38 -0800 + +strace (4.5.13-1) unstable; urgency=low + + * New upstream version. + + Fix m68k build, closes: #315500. + + Fix setsockopt decoding on 64-bit. + + Fix typos in socket option name strings. + + Display more IPV6 socket options by name. + + Don't display inappropriate syscalls for -e trace=file. + + New selector type -e trace=desc for file-descriptor using calls. + + Fix 32-bit old_mmap syscall decoding on x86-64. + + Fix errors detaching from multithreaded process on interrupt. + + Note 4.5.12 fix for crash handling bad signal numbers. + + -- Roland McGrath <frob@debian.org> Wed, 3 Aug 2005 04:41:49 -0700 + +strace (4.5.12-1) unstable; urgency=low + + * New upstream version. + + Build on ppc64, closes: #301089. + + Refuse negative -s argument value, closes: #303256. + + Fix known syscall recognition for IA32 processes on x86-64. + + Fix bad output for ptrace on x86-64. + + Fix potential buffer overruns. + + Make some diagnostics more consistent. + + Update PowerPC system calls. + + Better printing for Linux aio system calls. + + Don't truncate statfs64 fields to 32 bits in output. + + Cosmetic code cleanups. + + -- Roland McGrath <frob@debian.org> Wed, 8 Jun 2005 13:52:39 -0700 + +strace (4.5.11-1) unstable; urgency=low + + * New upstream version. + + Update MIPS system call table, closes: #256684. + + Fix build on s390 and sparc, closes: #294172, #293564. + + Fix select handling on nonstandard fd_set sizes, closes: #65654, #284290. + + Don't print errors for null file name pointers, closes: #63093. + + Fix initial execve output with -i. + + Fix build nits, closes: #300598. + + -- Roland McGrath <frob@debian.org> Tue, 22 Mar 2005 15:12:22 -0800 + +strace (4.5.9-1) unstable; urgency=low + + * New upstream version. + + Fix potential crash in getxattr printing, closes: #283704. + + Improve socket ioctl printing, closes: #192164. + + Fix sparc build, closes: #278449. + + Update ia64 syscall list. + + Fix x86_64 syscall argument extraction for 32-bit processes. + + Fix -e signal=NAME parsing. + + Fix x86_64 exit_group syscall handling. + + Improve mount flags printing. + + Support symbolic printing of x86_64 arch_prctl parameters. + + Add strace-udeb package for Debian installer debugging, closes: #268294. + + -- Roland McGrath <frob@debian.org> Fri, 4 Feb 2005 01:53:01 -0800 + +strace (4.5.8-1) unstable; urgency=low + + * New upstream version. + + Fix strace64 man page symlink, closes: #269220. + + Update syscall tables for Alpha, ARM, HPPA, closes: #273887. + + Build strace64 for s390, closes: #271500. + + Fix some endian issues in 64-bit argument output on 32-bit machines. + + 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. + + -- Roland McGrath <frob@debian.org> Tue, 19 Oct 2004 18:05:28 -0700 + +strace (4.5.7-1) unstable; urgency=low + + * New upstream version. + + Update man page about -c, closes: #254438. + + Include pread/pwrite calls in -e read/write tracing, closes: #239947. + + Update SO_* and IP_* value lists, closes: #171653. + + Print attribute values in *xattr system calls. + + Print clock_t values symbolically in Linux clock_* system calls. + + Show PER_* values correctly, closes: #40588. + + Fix `strace64' build on sparc, closes: #254728. + + -- Roland McGrath <frob@debian.org> Tue, 31 Aug 2004 01:41:19 -0700 + +strace (4.5.6-1) unstable; urgency=low + + * New upstream version. + + Update Linux ioctl lists and decode some more network ioctls. + + Fix `quotactl' argument decoding on 64-bit. + + Linux/SPARC64 support, closes: #254728. + + -- Roland McGrath <frob@debian.org> Mon, 12 Jul 2004 00:18:32 -0700 + +strace (4.5.5-1) unstable; urgency=low + + * New upstream version. + + Fix support for 32-bit (i386) binaries on Linux/AMD64. + + -- Roland McGrath <frob@debian.org> Sun, 27 Jun 2004 22:19:15 -0700 + +strace (4.5.4-1) unstable; urgency=low + + * Build package on amd64, closes: #246568. + * New upstream version. + + Recognize more PF_* and AF_* values, closes: #250506. + + Other fixes. + + -- Roland McGrath <frob@debian.org> Thu, 3 Jun 2004 19:35:37 -0700 + +strace (4.5.3-1) unstable; urgency=low + + * New upstream version. + + Finish fix for -f on Linux/S390(x). + + Print extra wait status bits, closes: #240062. + + -- Roland McGrath <frob@debian.org> Fri, 16 Apr 2004 15:27:43 -0700 + +strace (4.5.2-1) unstable; urgency=low + + * New upstream version. + + Check for errors writing to -o file, closes: #218762 + + Print multiple ioctl code matches on Linux. + + Various other fixes. + + Update typos and obsolete bits in man page, closes: #217008, #223390 + + Fix compilation problems with newer kernel headers, closes: #223207 + + Update HPPA system calls, closes: #231632 + + Fix PID in messages, closes: #229802 + + Fix s390 brokenness in 4.5, closes: #226098 + + -- Roland McGrath <frob@debian.org> Mon, 1 Mar 2004 22:44:55 -0800 + +strace (4.5-1) unstable; urgency=low + + * New upstream version. + + Fix mlock syscall printing. + + MIPS & S390 updates. + + Print names for SIGRT_* in sets. + + -- Roland McGrath <frob@debian.org> Wed, 24 Sep 2003 15:20:18 -0700 + +strace (4.4.99-1) unstable; urgency=low + + * New upstream version. + + Alpha updates. + + Add a few more new Linux 2.5 system calls. + + Stephen Thomas contributed a port to Linux/SH64. + + Print protocol names for PF_INET6 sockets. + + -- Roland McGrath <frob@debian.org> Thu, 17 Jul 2003 02:04:43 -0700 + +strace (4.4.98-1) unstable; urgency=low + + * New upstream version. + + Fixes clone argument bugs. + + Fixes sem* printing bugs. + + Fixes -e argument parsing, closes: #188379. + + Fixes hanging parent in odd wait cases, closes: #47608, #109656. + + Fixes -q defaulting, closes: #47113, #153678. + + Fixes trying to execute directories, closes: #137103. + + Updates ARM support, thanks to Russell King. + + Updates S390/S390x support. + * Bump standards-version to 3.5.10 + + -- Roland McGrath <frob@debian.org> Mon, 2 Jun 2003 12:26:29 -0700 + +strace (4.4.96-1) unstable; urgency=low + + * New upstream version. + + Handles yet more new Linux 2.5 system calls. + + Fixes x86_64 and ia64 clone printing. + + Updates SH port. + + -- Roland McGrath <frob@debian.org> Sun, 30 Mar 2003 17:14:34 -0800 + +strace (4.4.95-1) unstable; urgency=low + + * New upstream version. + + Fixes printing of getresuid and getresgid values. + + -- Roland McGrath <frob@debian.org> Mon, 24 Feb 2003 02:50:43 -0800 + +strace (4.4.94-1) unstable; urgency=low + + * New upstream version. + + New option -E to set environment variables. + + Build fixes for sparc, closes: #178636. + + -- Roland McGrath <frob@debian.org> Wed, 19 Feb 2003 19:12:40 -0800 + +strace (4.4.93-1) unstable; urgency=low + + * New upstream version. + + Grok new quotactl arguments, closes: #154067. + + Fix m68k build problem, closes: #176528. + + Old bugs prior release actually closes: #154068. + + Fix S390 bugs with -f, and bugs with execve. + * Switched to non-native packaging (empty .diff), closes: #176388. + + -- Roland McGrath <frob@debian.org> Tue, 21 Jan 2003 12:22:08 -0800 + +strace (4.4.92-1) unstable; urgency=low + + * New upstream version. + + Updated config.guess and config.sub, closes: #176241. + + Several fixes for PPC, closes: #144326. + + Fixed ptrace output for unknown requests, closes: #77728. + + Fixed output of getdents64, truncate64, ftruncate64, closes: #169528. + + Old bugs the last release actually closes: #153750, #38467, #109993, + #109815, #104594, #113087, #134803, #166622, #96356, #94725, #32147, + #32798, #36801, #41066, #81637, #138300, #143791. + + -- Roland McGrath <frob@debian.org> Tue, 14 Jan 2003 02:02:44 -0800 + +strace (4.4.91-1) unstable; urgency=low + + * New upstream version. + + Fixes -f on x86-64. + + -- Roland McGrath <frob@debian.org> Fri, 10 Jan 2003 12:55:34 -0800 + +strace (4.4.90-1) unstable; urgency=low + + * New maintainer. + * New upstream version. + + -- Roland McGrath <frob@debian.org> Fri, 10 Jan 2003 01:58:40 -0800 + +strace (4.4-1.2) unstable; urgency=low + + * NMU + * Quick one-liner to allow building on the ARM. Closes: #109993. + * Re-ran autoconf, hopefully I didn't break other arches. + + -- Anand Kumria <wildfire@progsoc.org> Mon, 1 Oct 2001 14:22:25 +1000 + +strace (4.4-1.1) unstable; urgency=low + + * NMU. + * Added patch from David Mosberger which fixes some ia64 issues. + Closes: #113087. + * Added ia64-specific Build-Depends on libc6.1-dev. Closes: + #109815. + * Ran autoheader, so the s390 patch applies. Closes: #104594. + + -- Jeff Licquia <jlicquia@progeny.com> Tue, 25 Sep 2001 13:15:28 -0500 + +strace (4.4-1) unstable; urgency=low + + * New upstream version + + Added S390 support. Closes: Bug#104594 + + New config.{guess,sub}. Closes: Bug#92532 + + LFS support for Linux/sparc. Closes: Bug#99215 + * Works on IA64 again. Closes: Bug#103854 + * Don't override CFLAGS in debian/rules + * Remove rules to create configure & friends. Closes: Bug#92483 + + -- Wichert Akkerman <wakkerma@debian.org> Sun, 19 Aug 2001 14:10:58 +0200 + +strace (4.3-3.1) unstable; urgency=low + + * copy in new config.{guess,sub} to get support for new architectures. + Closes: #94725 + + -- LaMont Jones <lamont@debian.org> Mon, 9 Jul 2001 21:39:34 -0600 + +strace (4.3-3) unstable; urgency=low + + * Update architecture list + + -- Wichert Akkerman <wakkerma@debian.org> Sat, 14 Apr 2001 10:42:19 +0200 + +strace (4.3-2) unstable; urgency=low + + * Run cvsbuild so we don't need to run autohead & friends + * Sync to current CVS + + -- Wichert Akkerman <wakkerma@debian.org> Fri, 13 Apr 2001 19:08:53 +0200 + +strace (4.3-1) unstable; urgency=low + + * New upstream version + * Updated Build-Depends to use a recent glibc so we get the 2.4 kernel + headers + * Changed Architecture so we only build on Linux + * Include section and priority in control info + + -- Wichert Akkerman <wakkerma@debian.org> Sun, 1 Apr 2001 16:35:32 +0200 + +strace (4.2-4) frozen unstable; urgency=low + + * Actually install postinst and prerm so we get the proper /usr/doc/strace + symlink + + -- Wichert Akkerman <wakkerma@debian.org> Thu, 17 Feb 2000 21:49:17 +0100 + +strace (4.2-3) frozen unstable; urgency=low + + * Fix typo in aclocal.m4 that prevented compilation on architectures without + LFS + + -- Wichert Akkerman <wakkerma@debian.org> Sun, 13 Feb 2000 01:19:11 +0100 + +strace (4.2-2) frozen unstable; urgency=low + + * only include linux/ptrace.h if sys/reg.h hasn't been found by configure, + Closes: Bug# 39556 + + -- Wichert Akkerman <wakkerma@debian.org> Thu, 27 Jan 2000 03:22:55 +0100 + +strace (4.2-1) frozen unstable; urgency=low + + * New upstream version: + + Builds correctly on glibc2.0 again, Closes: Bug# 51648 + + Small y2k fix in printtimes, Closes: Bug# 54592 + + semop is handled now, Closes: Bug# 52684 + + -- Wichert Akkerman <wakkerma@debian.org> Fri, 21 Jan 2000 21:45:41 +0100 + +strace (4.1-1) unstable; urgency=low + + * New upstream version + * Bump standards-version to 3.1.0 + * FHS 2.1 compliant + + -- Wichert Akkerman <wakkerma@debian.org> Fri, 26 Nov 1999 01:42:07 +0100 + +strace (4.0-1) unstable; urgency=low + + * New upstream version + + -- Wichert Akkerman <wakkerma@debian.org> Fri, 9 Jul 1999 16:12:34 +0200 + +strace (3.99.1-1) unstable; urgency=low + + * New upstream version, second pre-release for 4.0 + + -- Wichert Akkerman <wakkerma@debian.org> Wed, 9 Jun 1999 15:20:42 +0200 + +strace (3.99-1) unstable; urgency=low + + * New upstream maintainer (me :) + * New upstream version, pre-release for strace 4.0 + * See upstream changelog for changes + * Build with glibc2.1 + + -- Wichert Akkerman <wakkerma@debian.org> Tue, 27 Apr 1999 14:00:15 +0200 + +strace (3.1.0.1-12) unstable; urgency=low + + * Only i386 has a LDT, so check for architecture in mem.c (Bug# 32798) + * Check for nsignals properly, closes: #34445 + * Fix check for overruns in umove*, patch by Nate Eldredge <nate@cartsys.com> + + -- Wichert Akkerman <wakkerma@debian.org> Mon, 15 Mar 1999 00:43:14 +0100 + +strace (3.1.0.1-11) unstable; urgency=low + + * Merge some ARM stuff that got stuck in my mailbox + + -- Wichert Akkerman <wakkerma@debian.org> Sun, 31 Jan 1999 13:04:13 +0100 + +strace (3.1.0.1-10) unstable; urgency=low + + * Move sys_poll to the DONE section in linux/dummy.h + * Support subarchitectures for alpha (Bug# 32147) + * Incorporate changes from Ulrich Drepper + + up number of supported personalities on Linux sparc to 3 + + add O_DIRECT, O_LARGEFILE and O_DIRECTORY to openmodes + + change prefix for printxval to SEEK_ in sys_lseek + + add a support for a whole bunch of syscalls + + updated sys_pread and sys_pwrite for SVR4 + + handle sys_delete_module properly + + change SYS_socket_subcall to 230 for non-powerpc architectures + + sys_chown is now lchown + + looks like a whole lot of syscalls is moved from 180 to 230 + + Revamp a lot of the signal handling code + + handle sys_clone + + Lots more (it was a 6494-line patch and I'm too lazy to put all + changes in here..) + * Please note you need to have 2.1 or 2.2 kernel sources in /usr/src/linux + in order to compile this. + + -- Wichert Akkerman <wakkerma@debian.org> Fri, 29 Jan 1999 02:04:12 +0100 + +strace (3.1.0.1-9) unstable; urgency=low + + * Add support for poll() systemcall + + -- Wichert Akkerman <wakkerma@debian.org> Thu, 31 Dec 1998 16:03:44 +0100 + +strace (3.1.0.1-8) frozen unstable; urgency=low + + * Use new_stat from libc6 now, except for powerpc and sparc + + -- Wichert Akkerman <wakkerma@debian.org> Thu, 24 Dec 1998 11:35:32 +0100 + +strace (3.1.0.1-7) frozen unstable; urgency=low + + * Fix sparc support + * Display nanosleep call correctly (Bug# 25904) + * Honour -v flag in printargs (Bug# 10426) + * Play with #define to get proper kernel struct stat + * Compile with 2.1.131 kernel source + + -- Wichert Akkerman <wakkerma@debian.org> Sat, 19 Dec 1998 15:02:14 +0100 + +strace (3.1.0.1-6) frozen unstable; urgency=low + + * Set NSIG correctly for ARM + * Include strace-graph script from Richard Braakman <dark@debian.org> + as an example. Try it and be amazed! + * Fix sigaction problem, patch from Topi Miettinen + <Topi.Miettinen@medialab.sonera.net> + + -- Wichert Akkerman <wakkerma@debian.org> Mon, 7 Dec 1998 02:10:30 +0100 + +strace (3.1.0.1-5) unstable; urgency=low + + * Patched from Richard Braakman <dark@debian.org>: + + use correct dirent.h on Linux + + remove debugging code left from the powerpc patch + + fix output for execve when -v is used + + -- Wichert Akkerman <wakkerma@debian.org> Fri, 13 Nov 1998 15:59:17 +0100 + +strace (3.1.0.1-5) unstable; urgency=low + + * Add location of upstream sources to the copyright + * Merged ARM architecture support from Jim Studt <jim@federated.com> + + -- Wichert Akkerman <wakkerma@debian.org> Mon, 9 Nov 1998 16:43:24 +0100 + +strace (3.1.0.1-4) unstable; urgency=low + + * More ppc patches from Daniel Jacobowitz <dan@debian.org> + + -- Wichert Akkerman <wakkerma@debian.org> Mon, 12 Oct 1998 00:59:44 +0200 + +strace (3.1.0.1-3) unstable; urgency=low + + * Added support for sys_query_module, patch from Brian J. Murrell + <brian@interlinx.bc.ca> + * Preserve timestamps for documentation when installed + * Incorporate patches from Daniel Jacobowitz <dan@debian.org>: + + powerpc patches + + Patches include changing SYS_socket_subcall and SYS_ipc_subcall, + check for stray syscall exit after execv, and completely regenerated + syscall, errno, and ioctl lists. + + Decode capget and capset arguments. + + -- Wichert Akkerman <wakkerma@debian.org> Sun, 11 Oct 1998 22:42:56 +0200 + +strace (3.1.0.1-2) unstable; urgency=low + + * Patch to support sparc, courtesy of RedHat + * Cleaned up some stuff the patch left broken + * Fix some more compilation-issues for IPX with current kernels + + -- Wichert Akkerman <wakkerma@debian.org> Fri, 24 Jul 1998 22:53:43 +0200 + +strace (3.1.0.1-1) unstable; urgency=low + + * New (actually very old) upstream version. Fixes something we + already had fixed + * Compiled with current kernel-headers from libc6-dev + * Fixed spelling-error + * Compress changelog + * Bumped standard-version to 2.4.1.0 + + -- Wichert Akkerman <wakkerma@debian.org> Wed, 22 Jul 1998 15:53:23 +0200 + +strace (3.1-14) unstable; urgency=low + + * Don't let libc6 trick us anymore with {f,l,}stat() calls + * Fix configure.in to support PentiumII processors + + -- Wichert Akkerman <wakkerma@debian.org> Mon, 22 Jun 1998 20:17:20 +0200 + +strace (3.1-13) unstable; urgency=low + + * Corrected error on PowerPC patch that broke other archictectures + (Bug# 13837) + + -- Wichert Akkerman <wakkerma@debian.org> Tue, 14 Oct 1997 15:41:29 +0200 + +strace (3.1-12) unstable; urgency=low + + * PowerPC patches by Klee Dienes (Bug# 10788, 10790) + * Create correct md5sums (Bug# 13363) + * Put changelog in correct place (Bug# 13363) + * Pristine sources + + -- Wichert Akkerman <wakkerma@debian.org> Mon, 6 Oct 1997 15:42:25 +0200 + +strace (3.1-11) unstable; urgency=LOW + + * Ported to libc6 / glibc2 (Bug# 11729) + * Compress manpage + + -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl> Fri, 1 Aug 1997 00:13:38 +02 + +strace (3.1-10) unstable; urgency=LOW + + * Install upstream changelog + * Added dependencies to control file for libc + * Added md5sums to .deb file + + -- Wichert Akkerman <wakkerma@debian.org> Fri, 11 Jul 1997 12:26:12 +0200 + +strace (3.1-9) stable; urgency=LOW + + * Fixed bug with hanging children. Patch by Matthias Urlichs + * Added some more constants to net.c. + * glibc patches, courtesy of Klee Dienes (Bug# 7735) + + -- Wichert Akkerman <wakkerma@debian.org> Mon, 21 Apr 1997 11:59:45 +0200 + +strace (3.1-8) frozen unstable; urgency=LOW + + * Added detection of ROSE networking + + -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl> Tue, 12 Nov 1996 22:21:22 +0100 + +strace (3.1-7) stable; urgency=LOW + + * Install manpage with correct mode (0644) (Bug#4813) + * Renamed debian changelog to changelog.Debian + + -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl> Sat, 26 Oct 1996 18:15:41 +0200 + +strace (3.1-6) stable; urgency=LOW + + * Small patch for compilation on kernels 2.1.0 and later (see signal.c) + + -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl> Fri, 18 Oct 1996 00:28:47 +0200 +strace (3.1-5) stable unstable; urgency=LOW + + * Moved to new packagingformat + * Fixed umoven bug (Bug# 4523) + * Corrected number of parameters for mmap systemcall (bug# 4508) + + -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl> Sat, 23 Sep 1996 23:33:58 +0200 + +strace (3.1-4) unstable; urgency=LOW + + * Fixed changestemplate + + -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl>, Thu Sep 12 14:59:44 MET DST 1996 + + +strace (3.1-3) unstable; priority=LOW + + * Revamped debian files + + -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl>, Thu Jul 11 20:19:11 MET DST 1996 + + +strace (3.1-2) unstable; priority=LOW + * Added some #ifdef's around IPX stuff to make it compilable on non-Linux + systems. + * changed debian.control and debian.rules to conform to new debian naming + schemes + * added architecture-option to debian.rules and debian.control + + -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl> + + +strace (3.1-1) unstable; priority=LOW + + * Moved to new upstream version + * added more protocol families to domains + * added IPIP-protocol to protocols + * 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 + + -- Wichert Akkerman <wakkerma@wi.leidenuniv.nl>
diff --git a/strace-4.5.20/debian/compat b/strace-4.5.20/debian/compat new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/strace-4.5.20/debian/compat
@@ -0,0 +1 @@ +7
diff --git a/strace-4.5.20/debian/control b/strace-4.5.20/debian/control new file mode 100644 index 0000000..b22b1a3 --- /dev/null +++ b/strace-4.5.20/debian/control
@@ -0,0 +1,56 @@ +Source: strace +Maintainer: Frederik Schüler <fs@debian.org> +Section: utils +Priority: optional +Build-Depends: libc6-dev (>= 2.2.2) [!alpha !ia64], libc6.1-dev (>= 2.2.2) [alpha ia64], gcc-multilib [i386 powerpc s390 sparc], debhelper (>= 7.0.0) +Standards-Version: 3.8.4 +Homepage: http://sourceforge.net/projects/strace/ + +Package: strace +Architecture: alpha amd64 arm armeb armel hppa i386 ia64 m68k mips mipsel powerpc ppc64 s390 s390x sh sparc sparc64 +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: A system call tracer + strace is a system call tracer, i.e. a debugging tool which prints out + a trace of all the system calls made by a another process/program. + The program to be traced need not be recompiled for this, so you can + use it on binaries for which you don't have source. + . + 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. + +Package: strace64 +Architecture: i386 powerpc s390 sparc +Priority: extra +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: A system call tracer for 64bit binaries + strace is a system call tracer, i.e. a debugging tool which prints out + a trace of all the system calls made by a another process/program. + The program to be traced need not be recompiled for this, so you can + use it on binaries for which you don't have source. + . + This package containts the 64bit version of the binary, intended for + biarch systems with 32bit userland and 64bit kernel. + . + 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. + +Package: strace-udeb +Section: debian-installer +XC-Package-Type: udeb +Priority: extra +Architecture: alpha amd64 arm armeb armel hppa i386 ia64 m68k mips mipsel powerpc ppc64 s390 sh sparc sparc64 +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: A system call tracer + strace is a system call tracer, i.e. a debugging tool which prints out + a trace of all the system calls made by a another process/program. + The program to be traced need not be recompiled for this, so you can + use it on binaries for which you don't have source. + . + 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. + . + This is a stripped down package intended for debugging use in the Debian + installer.
diff --git a/strace-4.5.20/debian/copyright b/strace-4.5.20/debian/copyright new file mode 100644 index 0000000..59e7b1b --- /dev/null +++ b/strace-4.5.20/debian/copyright
@@ -0,0 +1,41 @@ +This is the Debian packaged version of strace. For a complete list of +changes from the upstream version please see the changelog. + +The upstream sources can be found at http://sourceforge.net/projects/strace/ + +This is the copyright as found in the upstream sources: + +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-2003 Wichert Akkerman <wakkerma@deephackmode.org> +Copyright (c) 2002-2008 Roland McGrath <roland@redhat.com> +Copyright (c) 2003-2008 Dmitry V. Levin <ldv@altlinux.org> +Copyright (c) 2007-2008 Jan Kratochvil <jan.kratochvil@redhat.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$
diff --git a/strace-4.5.20/debian/rules b/strace-4.5.20/debian/rules new file mode 100755 index 0000000..8e66ae9 --- /dev/null +++ b/strace-4.5.20/debian/rules
@@ -0,0 +1,83 @@ +#! /usr/bin/make -f + +#export DH_VERBOSE=1 + +CFLAGS = -Wall -g + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + MAKEFLAGS += -j$(NUMJOBS) +endif + +DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) + +arch64_map = i386=x86_64 powerpc=powerpc64 sparc=sparc64 s390=s390x +ifneq (,$(filter $(DEB_HOST_ARCH)=%, $(arch64_map))) + HOST64 = $(strip $(patsubst $(DEB_HOST_ARCH)=%, %, \ + $(filter $(DEB_HOST_ARCH)=%, $(arch64_map))))-linux-gnu + CC64 = gcc -m64 + extra_build_targets += build64-stamp +endif + +ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) + CONFIG_OPTS = --build=$(DEB_BUILD_GNU_TYPE) +else + CONFIG_OPTS = --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) +endif + +all build: build-stamp $(extra_build_targets) + +%-stamp: %/Makefile + $(MAKE) -C $* + touch $@ + +build/Makefile: + mkdir -p $(@D) + cd $(@D); sh ../configure --prefix=/usr $(CONFIG_OPTS) + +build64/Makefile: + mkdir -p $(@D) + cd $(@D); CC="$(CC64)" sh ../configure --prefix=/usr --build=$(DEB_BUILD_GNU_TYPE) --host=$(HOST64) + +clean: + dh_testdir + dh_testroot + rm -rf build build64 strace64.1 + dh_clean + +binary: binary-indep binary-arch + +binary-indep: + +binary-arch: build + test -f build-stamp || make $(MFLAGS) -f debian/rules build + + # prepare 64bit executable and manpage, if it has been built + test -f build64-stamp && ( mv build64/strace build64/strace64 ; \ + cp strace.1 strace64.1 ) || true + + dh_testdir -s + dh_testroot -s + dh_installdirs -s + dh_installdocs -s + dh_installman -s + dh_installexamples -s + dh_installchangelogs -s + dh_install -s + dh_link -s + dh_strip -s + dh_compress -s + dh_fixperms -s + dh_installdeb -s + dh_shlibdeps -s + dh_gencontrol -s + dh_md5sums -s + dh_builddeb -s
diff --git a/strace-4.5.20/debian/strace-udeb.install b/strace-4.5.20/debian/strace-udeb.install new file mode 100644 index 0000000..1f41928 --- /dev/null +++ b/strace-4.5.20/debian/strace-udeb.install
@@ -0,0 +1 @@ +build/strace usr/bin
diff --git a/strace-4.5.20/debian/strace.docs b/strace-4.5.20/debian/strace.docs new file mode 100644 index 0000000..f62d067 --- /dev/null +++ b/strace-4.5.20/debian/strace.docs
@@ -0,0 +1,2 @@ +TODO +NEWS
diff --git a/strace-4.5.20/debian/strace.examples b/strace-4.5.20/debian/strace.examples new file mode 100644 index 0000000..06b4d96 --- /dev/null +++ b/strace-4.5.20/debian/strace.examples
@@ -0,0 +1 @@ +strace-graph
diff --git a/strace-4.5.20/debian/strace.install b/strace-4.5.20/debian/strace.install new file mode 100644 index 0000000..1f41928 --- /dev/null +++ b/strace-4.5.20/debian/strace.install
@@ -0,0 +1 @@ +build/strace usr/bin
diff --git a/strace-4.5.20/debian/strace.manpages b/strace-4.5.20/debian/strace.manpages new file mode 100644 index 0000000..5e74dd7 --- /dev/null +++ b/strace-4.5.20/debian/strace.manpages
@@ -0,0 +1 @@ +strace.1
diff --git a/strace-4.5.20/debian/strace64.install b/strace-4.5.20/debian/strace64.install new file mode 100644 index 0000000..2d3036d --- /dev/null +++ b/strace-4.5.20/debian/strace64.install
@@ -0,0 +1 @@ +build64/strace64 usr/bin
diff --git a/strace-4.5.20/debian/strace64.manpages b/strace-4.5.20/debian/strace64.manpages new file mode 100644 index 0000000..e3adc93 --- /dev/null +++ b/strace-4.5.20/debian/strace64.manpages
@@ -0,0 +1 @@ +strace64.1
diff --git a/strace-4.5.20/defs.h b/strace-4.5.20/defs.h new file mode 100644 index 0000000..62b3719 --- /dev/null +++ b/strace-4.5.20/defs.h
@@ -0,0 +1,664 @@ +/* + * 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$ + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef MIPS +#include <sgidefs.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 7000 /* 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 +# ifdef HPPA +# define MAX_ARGS 6 /* maximum number of args to a syscall */ +# else +# define MAX_ARGS 32 /* maximum number of args to a syscall */ +# endif +#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 HAVE_STDBOOL_H +#include <stdbool.h> +#endif + +#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(X86_64) +# define LINUX_X86_64 +# endif +# if defined(MIPS) && _MIPS_SIM == _MIPS_SIM_ABI32 +# define LINUX_MIPSO32 +# endif +# if defined(MIPS) && _MIPS_SIM == _MIPS_SIM_NABI32 +# define LINUX_MIPSN32 +# define LINUX_MIPS64 +# endif +# if defined(MIPS) && _MIPS_SIM == _MIPS_SIM_ABI64 +# define LINUX_MIPSN64 +# define LINUX_MIPS64 +# endif +# if defined(ARM) +# define LINUX_ARM +# endif +# if defined(AVR32) +# define LINUX_AVR32 +# 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(LINUX_ARM) || defined(LINUX_AVR32)) && 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 LINUX +extern long ptrace(int, int, char *, long); +#else /* !LINUX */ +extern int ptrace(int, int, char *, int, ...); +#endif /* !LINUX */ +#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 +/* Indexes into the pt_regs.u_reg[] array -- UREG_XX from kernel are all off + * by 1 and use Ix instead of Ox. These work for both 32 and 64 bit Linux. */ +#define U_REG_G1 0 +#define U_REG_O0 7 +#define U_REG_O1 8 +#define PERSONALITY0_WORDSIZE 4 +#define PERSONALITY1_WORDSIZE 4 +#undef SUPPORTED_PERSONALITIES +#if defined(SPARC64) +#include <asm/psrcompat.h> +#define SUPPORTED_PERSONALITIES 3 +#define PERSONALITY2_WORDSIZE 8 +#else +#include <asm/psr.h> +#define SUPPORTED_PERSONALITIES 2 +#endif /* SPARC64 */ +#endif /* LINUXSPARC */ + +#ifdef X86_64 +#undef SUPPORTED_PERSONALITIES +#define SUPPORTED_PERSONALITIES 2 +#define PERSONALITY0_WORDSIZE 8 +#define PERSONALITY1_WORDSIZE 4 +#endif + +#ifdef ARM +#undef SUPPORTED_PERSONALITIES +#define SUPPORTED_PERSONALITIES 2 +#define PERSONALITY0_WORDSIZE 4 +#define PERSONALITY1_WORDSIZE 4 +#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 */ +#if defined (LINUX_MIPSN32) + long long ext_arg[MAX_ARGS]; /* System call arguments */ +#endif + 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 */ + int curcol; /* Output column 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 + int ptrace_errno; +#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 can not be allowed to resume 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 +/* x86 does not need TCB_WAITEXECVE. + * It can detect execve's SIGTRAP by looking at eax/rax. + * See "stray syscall exit: eax = " message in syscall_fixup(). + */ +# if defined(ALPHA) || defined(AVR32) || defined(SPARC) || defined(SPARC64) \ + || defined(POWERPC) || defined(IA64) || defined(HPPA) \ + || defined(SH) || defined(SH64) || defined(S390) || defined(S390X) \ + || defined(ARM) || defined(MIPS) || defined(BFIN) || defined(TILE) +# 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 X86_64 +# define __NR_exit_group 231 +# 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 +# elif defined M68K +# define __NR_exit_group 247 +# 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; +}; + +extern const struct xlat open_mode_flags[]; +extern const struct xlat addrfams[]; +extern const struct xlat struct_user_offsets[]; +extern const struct xlat open_access_modes[]; + +/* 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. */ +#define TRACE_DESC 040 /* Trace file descriptor-related syscalls. */ + +typedef enum { + CFLAG_NONE = 0, + CFLAG_ONLY_STATS, + CFLAG_BOTH +} cflag_t; + +extern struct tcb **tcbtab; +extern int *qual_flags; +extern int debug, followfork; +extern int dtime, xflag, qflag; +extern cflag_t cflag; +extern int acolumn; +extern unsigned int nprocs, tcbtabsize; +extern int max_strlen; +extern struct tcb *tcp_last; + +enum bitness_t { BITNESS_CURRENT = 0, BITNESS_32 }; + +extern int set_personality(int personality); +extern const char *xlookup(const struct xlat *, int); +extern struct tcb *alloc_tcb(int, int); +extern struct tcb *pid2tcb(int); +extern void droptcb(struct tcb *); +extern void expand_tcbtab(void); + +#define alloctcb(pid) alloc_tcb((pid), 1) + +extern void set_sortby(char *); +extern void set_overhead(int); +extern void qualify(char *); +extern int get_scno(struct tcb *); +extern long known_scno(struct tcb *); +extern long do_ptrace(int request, struct tcb *tcp, void *addr, void *data); +extern int ptrace_restart(int request, struct tcb *tcp, int sig); +extern int trace_syscall(struct tcb *); +extern int count_syscall(struct tcb *, struct timeval *); +extern void printxval(const struct xlat *, int, const char *); +extern int printargs(struct tcb *); +extern int addflags(const struct xlat *, int); +extern int printflags(const struct xlat *, int, const char *); +extern const char *sprintflags(const char *, const struct xlat *, int); +extern int umoven(struct tcb *, long, int, char *); +extern int umovestr(struct tcb *, long, int, char *); +extern int upeek(struct tcb *, long, long *); +extern void dumpiov(struct tcb *, int, long); +extern void dumpstr(struct tcb *, long, int); +extern void printstr(struct tcb *, long, int); +extern void printnum(struct tcb *, long, char *); +extern void printnum_int(struct tcb *, long, char *); +extern void printpath(struct tcb *, long); +extern void printpathn(struct tcb *, long, int); +extern void printtv_bitness(struct tcb *, long, enum bitness_t, int); +extern void sprinttv(struct tcb *, long, enum bitness_t, char *); +extern void print_timespec(struct tcb *, long); +extern void sprint_timespec(char *, struct tcb *, long); +#ifdef HAVE_SIGINFO_T +extern void printsiginfo(siginfo_t *, int); +#endif +extern void printsock(struct tcb *, long, int); +extern void print_sock_optmgmt(struct tcb *, long, int); +extern void printrusage(struct tcb *, long); +extern void printuid(const char *, unsigned long); +extern int clearbpt(struct tcb *); +extern int setbpt(struct tcb *); +extern int sigishandled(struct tcb *, int); +extern void printcall(struct tcb *); +extern const char *signame(int); +extern void print_sigset(struct tcb *, long, int); +extern void printsignal(int); +extern void printleader(struct tcb *); +extern void printtrailer(void); +extern void tabto(int); +extern void call_summary(FILE *); +extern void tprint_iov(struct tcb *, unsigned long, unsigned long); +extern void tprint_open_modes(mode_t); +extern const char *sprint_open_modes(mode_t); +extern int is_restart_error(struct tcb *); + +extern int change_syscall(struct tcb *, int); +extern int internal_fork(struct tcb *); +extern int internal_exec(struct tcb *); +extern int internal_wait(struct tcb *, int); +extern int internal_exit(struct tcb *); + +extern const struct ioctlent *ioctl_lookup(long); +extern const struct ioctlent *ioctl_next_match(const struct ioctlent *); +extern int ioctl_decode(struct tcb *, long, long); +extern int term_ioctl(struct tcb *, long, long); +extern int sock_ioctl(struct tcb *, long, long); +extern int proc_ioctl(struct tcb *, int, int); +extern int stream_ioctl(struct tcb *, int, int); +#ifdef LINUX +extern int rtc_ioctl(struct tcb *, long, long); +extern int scsi_ioctl(struct tcb *, long, long); +#endif + +extern int tv_nz(struct timeval *); +extern int tv_cmp(struct timeval *, struct timeval *); +extern double tv_float(struct timeval *); +extern void tv_add(struct timeval *, struct timeval *, struct timeval *); +extern void tv_sub(struct timeval *, struct timeval *, struct timeval *); +extern void tv_mul(struct timeval *, struct timeval *, int); +extern void tv_div(struct timeval *, struct timeval *, int); + +#ifdef SUNOS4 +extern int fixvfork(struct tcb *); +#endif +#if !(defined(LINUX) && !defined(SPARC) && !defined(SPARC64) && !defined(IA64)) +extern long getrval2(struct tcb *); +#endif +#ifdef USE_PROCFS +extern int proc_open(struct tcb *tcp, int attaching); +#endif + +#define umove(pid, addr, objp) \ + umoven((pid), (addr), sizeof *(objp), (char *) (objp)) + +#define printtv(tcp, addr) \ + printtv_bitness((tcp), (addr), BITNESS_CURRENT, 0) +#define printtv_special(tcp, addr) \ + printtv_bitness((tcp), (addr), BITNESS_CURRENT, 1) + +#ifdef __GNUC__ +extern void tprintf(const char *fmt, ...) + __attribute__ ((format (printf, 1, 2))); +#else +extern void tprintf(const char *fmt, ...); +#endif + +#ifndef HAVE_STRERROR +const char *strerror(int); +#endif +#ifndef HAVE_STRSIGNAL +const char *strsignal(int); +#endif + +extern int current_personality; +extern const int personality_wordsize[]; + +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 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 + +extern int printllval(struct tcb *, const char *, int); +#endif + +#ifdef IA64 +extern long ia32; +#endif + +extern int not_failing_only;
diff --git a/strace-4.5.20/depcomp b/strace-4.5.20/depcomp new file mode 100755 index 0000000..df8eea7 --- /dev/null +++ b/strace-4.5.20/depcomp
@@ -0,0 +1,630 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2009-04-28.21; # UTC + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 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, see <http://www.gnu.org/licenses/>. + +# 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'. + DEPDIR directory where to store dependencies. + 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 $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +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 + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +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 + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u="sed s,\\\\\\\\,/,g" + depmode=msvisualcpp +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. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + 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. + 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$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + # 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,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$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" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + 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$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +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 + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + 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 "X$1" != 'X--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 "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + 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. + -arch) + eat=yes ;; + -*|$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 "X$1" != 'X--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 -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [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. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # 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 + ;; + +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-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End:
diff --git a/strace-4.5.20/desc.c b/strace-4.5.20/desc.c new file mode 100644 index 0000000..9571e49 --- /dev/null +++ b/strace-4.5.20/desc.c
@@ -0,0 +1,981 @@ +/* + * 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$ + */ + +#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 +#ifdef F_SETLEASE + { F_SETLEASE, "F_SETLEASE" }, +#endif +#ifdef F_GETLEASE + { F_GETLEASE, "F_GETLEASE" }, +#endif +#ifdef F_NOTIFY + { F_NOTIFY, "F_NOTIFY" }, +#endif +#ifdef F_DUPFD_CLOEXEC + { F_DUPFD_CLOEXEC,"F_DUPFD_CLOEXEC"}, +#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 }, +}; + +#ifdef F_NOTIFY +static const struct xlat notifyflags[] = { +#ifdef DN_ACCESS + { DN_ACCESS, "DN_ACCESS" }, +#endif +#ifdef DN_MODIFY + { DN_MODIFY, "DN_MODIFY" }, +#endif +#ifdef DN_CREATE + { DN_CREATE, "DN_CREATE" }, +#endif +#ifdef DN_DELETE + { DN_DELETE, "DN_DELETE" }, +#endif +#ifdef DN_RENAME + { DN_RENAME, "DN_RENAME" }, +#endif +#ifdef DN_ATTRIB + { DN_ATTRIB, "DN_ATTRIB" }, +#endif +#ifdef DN_MULTISHOT + { DN_MULTISHOT, "DN_MULTISHOT" }, +#endif + { 0, NULL }, +}; +#endif + +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(struct tcb *tcp, long addr, int getlk) +{ + struct flock fl; + +#if SUPPORTED_PERSONALITIES > 1 + if (personality_wordsize[current_personality] != sizeof(fl.l_start)) { + if (personality_wordsize[current_personality] == 4) { + /* 32-bit x86 app on x86_64 and similar cases */ + struct { + short int l_type; + short int l_whence; + int32_t l_start; /* off_t */ + int32_t l_len; /* off_t */ + int32_t l_pid; /* pid_t */ + } fl32; + if (umove(tcp, addr, &fl32) < 0) { + tprintf("{...}"); + return; + } + fl.l_type = fl32.l_type; + fl.l_whence = fl32.l_whence; + fl.l_start = fl32.l_start; + fl.l_len = fl32.l_len; + fl.l_pid = fl32.l_pid; + } else { + /* let people know we have a problem here */ + tprintf("{ <decode error: unsupported wordsize %d> }", + personality_wordsize[current_personality]); + return; + } + } else +#endif + { + 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(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 + +int +sys_fcntl(struct tcb *tcp) +{ + 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: +#ifdef F_DUPFD_CLOEXEC + case F_DUPFD_CLOEXEC: +#endif + tprintf(", %ld", tcp->u_arg[2]); + break; + case F_SETFL: + tprintf(", "); + tprint_open_modes(tcp->u_arg[2]); + 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 +#ifdef F_NOTIFY + case F_NOTIFY: + tprintf(", "); + printflags(notifyflags, tcp->u_arg[2], "DN_???"); + break; +#endif +#ifdef F_SETLEASE + case F_SETLEASE: + tprintf(", "); + printxval(lockfcmds, tcp->u_arg[2], "F_???"); + break; +#endif + } + } + else { + switch (tcp->u_arg[1]) { + case F_DUPFD: +#ifdef F_DUPFD_CLOEXEC + case F_DUPFD_CLOEXEC: +#endif + case F_SETFD: case F_SETFL: + case F_SETLK: case F_SETLKW: + case F_SETOWN: case F_GETOWN: +#ifdef F_NOTIFY + case F_NOTIFY: +#endif +#ifdef F_SETLEASE + case F_SETLEASE: +#endif + break; + case F_GETFD: + if (syserror(tcp) || tcp->u_rval == 0) + return 0; + tcp->auxstr = sprintflags("flags ", fdflags, tcp->u_rval); + return RVAL_HEX|RVAL_STR; + case F_GETFL: + if (syserror(tcp)) + return 0; + tcp->auxstr = sprint_open_modes(tcp->u_rval); + 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 +#ifdef F_GETLEASE + case F_GETLEASE: + if (syserror(tcp)) + return 0; + tcp->auxstr = xlookup(lockfcmds, tcp->u_rval); + return RVAL_HEX|RVAL_STR; +#endif + default: + tprintf(", %#lx", tcp->u_arg[2]); + break; + } + } + return 0; +} + +#ifdef LOCK_SH + +int +sys_flock(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(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld", tcp->u_arg[0]); + } + return 0; +} + +int +sys_dup(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld", tcp->u_arg[0]); + } + return 0; +} + +static int +do_dup2(struct tcb *tcp, int flags_arg) +{ + if (entering(tcp)) { + tprintf("%ld, %ld", tcp->u_arg[0], tcp->u_arg[1]); + if (flags_arg >= 0) { + tprintf(", "); + printflags(open_mode_flags, tcp->u_arg[flags_arg], "O_???"); + } + } + return 0; +} + +int +sys_dup2(struct tcb *tcp) +{ + return do_dup2(tcp, -1); +} + +#ifdef LINUX +int +sys_dup3(struct tcb *tcp) +{ + return do_dup2(tcp, 2); +} +#endif + +#if defined(ALPHA) || defined(FREEBSD) || defined(SUNOS4) +int +sys_getdtablesize(struct tcb *tcp) +{ + return 0; +} +#endif /* ALPHA || FREEBSD || SUNOS4 */ + +static int +decode_select(struct tcb *tcp, long *args, enum bitness_t bitness) +{ + int i, j, nfds; + unsigned int fdsize = ((((args[0] + 7) / 8) + sizeof(long) - 1) + & -sizeof(long)); + fd_set *fds; + 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); + tprintf(", "); + printtv_bitness(tcp, args[4], bitness, 0); + } + 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; + + 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)) { + char str[11 + 3 * sizeof(int)]; + + 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[128]; + + sprintf(str, "%sleft ", sep); + sprinttv(tcp, args[4], bitness, str + strlen(str)); + if ((cumlen += strlen(str)) < sizeof(outstr)) + strcat(outstr, str); + } +#endif /* LINUX */ + return RVAL_STR; + } + return 0; +} + +#ifdef LINUX + +int +sys_oldselect(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, BITNESS_CURRENT); +} + +#ifdef ALPHA +int +sys_osf_select(struct tcb *tcp) +{ + long *args = tcp->u_arg; + return decode_select(tcp, args, BITNESS_32); +} +#endif + +static const 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 const 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(struct tcb *tcp) +{ + if (entering(tcp)) + tprintf("%ld", tcp->u_arg[0]); + return 0; +} + +int +sys_epoll_create1(struct tcb *tcp) +{ + if (entering(tcp)) + printflags(open_mode_flags, tcp->u_arg[0], "O_???"); + return 0; +} + +#ifdef HAVE_SYS_EPOLL_H +static void +print_epoll_event(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(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; +} + +static void +epoll_wait_common(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]); + } +} + +int +sys_epoll_wait(struct tcb *tcp) +{ + epoll_wait_common(tcp); + return 0; +} + +int +sys_epoll_pwait(struct tcb *tcp) +{ + epoll_wait_common(tcp); + if (exiting(tcp)) { + tprintf(", "); + print_sigset(tcp, tcp->u_arg[4], 0); + } + return 0; +} + +int +sys_io_setup(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(struct tcb *tcp) +{ + if (entering(tcp)) + tprintf("%lu", tcp->u_arg[0]); + return 0; +} + +int +sys_io_submit(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(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(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 + } + + print_timespec(tcp, tcp->u_arg[4]); + } + return 0; +} +#endif /* LINUX */ + +int +sys_select(struct tcb *tcp) +{ + return decode_select(tcp, tcp->u_arg, BITNESS_CURRENT); +} + +#ifdef LINUX +int +sys_pselect6(struct tcb *tcp) +{ + int rc = decode_select(tcp, tcp->u_arg, BITNESS_CURRENT); + if (entering(tcp)) { + struct { + void *ss; + unsigned long len; + } data; + if (umove(tcp, tcp->u_arg[5], &data) < 0) + tprintf(", %#lx", tcp->u_arg[5]); + else { + tprintf(", {"); + if (data.len < sizeof(long)) + tprintf("%#lx", (long)data.ss); + else + print_sigset(tcp, (long)data.ss, 0); + tprintf(", %lu}", data.len); + } + } + return rc; +} + +static int +do_eventfd(struct tcb *tcp, int flags_arg) +{ + if (entering(tcp)) { + tprintf("%lu", tcp->u_arg[0]); + if (flags_arg >= 0) { + tprintf(", "); + printflags(open_mode_flags, tcp->u_arg[flags_arg], "O_???"); + } + } + return 0; +} + +int +sys_eventfd(struct tcb *tcp) +{ + return do_eventfd(tcp, -1); +} + +int +sys_eventfd2(struct tcb *tcp) +{ + return do_eventfd(tcp, 1); +} +#endif
diff --git a/strace-4.5.20/errnoent.sh b/strace-4.5.20/errnoent.sh new file mode 100755 index 0000000..3a709ae --- /dev/null +++ b/strace-4.5.20/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$ + +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/strace-4.5.20/file.c b/strace-4.5.20/file.c new file mode 100644 index 0000000..854548f --- /dev/null +++ b/strace-4.5.20/file.c
@@ -0,0 +1,2907 @@ +/* + * 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$ + */ + +#include "defs.h" + +#include <dirent.h> + +#ifdef LINUX +struct kernel_dirent { + unsigned long d_ino; + unsigned long d_off; + unsigned short d_reclen; + char d_name[1]; +}; +#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 _LFS64_LARGEFILE && (defined(LINUX) || defined(SVR4)) +# ifdef HAVE_INTTYPES_H +# include <inttypes.h> +# else +# define PRId64 "lld" +# define PRIu64 "llu" +# endif +#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 + +const struct xlat open_access_modes[] = { + { O_RDONLY, "O_RDONLY" }, + { O_WRONLY, "O_WRONLY" }, + { O_RDWR, "O_RDWR" }, +#ifdef O_ACCMODE + { O_ACCMODE, "O_ACCMODE" }, +#endif + { 0, NULL }, +}; + +const struct xlat open_mode_flags[] = { + { O_CREAT, "O_CREAT" }, + { O_EXCL, "O_EXCL" }, + { O_NOCTTY, "O_NOCTTY" }, + { O_TRUNC, "O_TRUNC" }, + { O_APPEND, "O_APPEND" }, + { O_NONBLOCK, "O_NONBLOCK" }, +#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 +#if defined(O_NDELAY) && (O_NDELAY != O_NONBLOCK) + { 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 O_CLOEXEC + { O_CLOEXEC, "O_CLOEXEC" }, +#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 }, +}; + +#ifdef LINUX + +#ifndef AT_FDCWD +# define AT_FDCWD -100 +#endif + +/* The fd is an "int", so when decoding x86 on x86_64, we need to force sign + * extension to get the right value. We do this by declaring fd as int here. + */ +static void +print_dirfd(int fd) +{ + if (fd == AT_FDCWD) + tprintf("AT_FDCWD, "); + else + tprintf("%d, ", fd); +} +#endif + +/* + * Pity stpcpy() is not standardized... + */ +static char * +str_append(char *dst, const char *src) +{ + while ((*dst = *src++) != '\0') + dst++; + return dst; +} + +/* + * low bits of the open(2) flags define access mode, + * other bits are real flags. + */ +const char * +sprint_open_modes(mode_t flags) +{ + static char outstr[1024]; + char *p; + char sep = 0; + const char *str; + const struct xlat *x; + + p = str_append(outstr, "flags "); + str = xlookup(open_access_modes, flags & 3); + if (str) { + p = str_append(p, str); + flags &= ~3; + if (!flags) + return outstr; + sep = '|'; + } + + for (x = open_mode_flags; x->str; x++) { + if ((flags & x->val) == x->val) { + if (sep) + *p++ = sep; + p = str_append(p, x->str); + flags &= ~x->val; + if (!flags) + return outstr; + sep = '|'; + } + } + /* flags is still nonzero */ + if (sep) + *p++ = sep; + sprintf(p, "%#x", flags); + return outstr; +} + +void +tprint_open_modes(mode_t flags) +{ + tprintf("%s", sprint_open_modes(flags) + sizeof("flags")); +} + +static int +decode_open(struct tcb *tcp, int offset) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[offset]); + tprintf(", "); + /* flags */ + tprint_open_modes(tcp->u_arg[offset + 1]); + if (tcp->u_arg[offset + 1] & O_CREAT) { + /* mode */ + tprintf(", %#lo", tcp->u_arg[offset + 2]); + } + } + return 0; +} + +int +sys_open(struct tcb *tcp) +{ + return decode_open(tcp, 0); +} + +#ifdef LINUX +int +sys_openat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_open(tcp, 1); +} +#endif + +#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(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(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 }, +}; + +static int +decode_access(struct tcb *tcp, int offset) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[offset]); + tprintf(", "); + printflags(access_flags, tcp->u_arg[offset + 1], "?_OK"); + } + return 0; +} + +int +sys_access(struct tcb *tcp) +{ + return decode_access(tcp, 0); +} + +#ifdef LINUX +int +sys_faccessat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_access(tcp, 1); +} +#endif + +int +sys_umask(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 +#if defined (LINUX_MIPSN32) +int +sys_lseek(struct tcb *tcp) +{ + long long offset; + int _whence; + + if (entering(tcp)) { + tprintf("%ld, ", tcp->u_arg[0]); + offset = tcp->ext_arg[1]; + _whence = tcp->u_arg[2]; + if (_whence == SEEK_SET) + tprintf("%llu, ", offset); + else + tprintf("%lld, ", offset); + printxval(whence, _whence, "SEEK_???"); + } + return RVAL_UDECIMAL; +} +#else /* !LINUX_MIPSN32 */ +int +sys_lseek(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 /* LINUX_MIPSN32 */ +#endif + +#ifdef LINUX +int +sys_llseek(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(struct tcb *tcp) +{ + if (entering(tcp)) { + int argn; + tprintf("%ld, ", tcp->u_arg[0]); + argn = printllval(tcp, "%lld", 1); + tprintf(", %ld", tcp->u_arg[argn]); + } + return 0; +} +#endif + +#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T +int +sys_lseek64(struct tcb *tcp) +{ + if (entering(tcp)) { + int argn; + tprintf("%ld, ", tcp->u_arg[0]); + if (tcp->u_arg[3] == SEEK_SET) + argn = printllval(tcp, "%llu, ", 1); + else + argn = printllval(tcp, "%lld, ", 1); + printxval(whence, tcp->u_arg[argn], "SEEK_???"); + } + return RVAL_LUDECIMAL; +} +#endif + +#ifndef HAVE_LONG_LONG_OFF_T +int +sys_truncate(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(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + printllval(tcp, ", %llu", 1); + } + return 0; +} +#endif + +#ifndef HAVE_LONG_LONG_OFF_T +int +sys_ftruncate(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(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld, ", tcp->u_arg[0]); + printllval(tcp, "%llu", 1); + } + 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(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(time_t t) +{ + struct tm *tmp; + static char buf[32]; + + if (t == 0) { + strcpy(buf, "0"); + return buf; + } + if ((tmp = localtime(&t))) + snprintf(buf, sizeof 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); + else + snprintf(buf, sizeof buf, "%lu", (unsigned long) t); + + 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(struct tcb *tcp, long addr) +{ + struct solstat statbuf; + + 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.tv_sec)); + tprintf("st_mtime=%s, ", sprinttime(statbuf.st_mtime.tv_sec)); + tprintf("st_ctime=%s}", sprinttime(statbuf.st_ctime.tv_sec)); + } + else + tprintf("...}"); +} + +#if defined (SPARC64) +static void +printstat_sparc64(struct tcb *tcp, long addr) +{ + struct stat_sparc64 statbuf; + + 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(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(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(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 +#ifdef HAVE_STRUCT_STAT_ST_BLOCKS + tprintf("st_blocks=%lu, ", (unsigned long) statbuf->st_blocks); +#endif + } + 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(struct tcb *tcp, long addr) +{ + struct stat statbuf; + + if (!addr) { + tprintf("NULL"); + return; + } + if (syserror(tcp) || !verbose(tcp)) { + tprintf("%#lx", addr); + return; + } + +#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 (umove(tcp, addr, &statbuf) < 0) { + tprintf("{...}"); + return; + } + + realprintstat(tcp, &statbuf); +} +#endif /* !HAVE_LONG_LONG_OFF_T */ + +#if !defined HAVE_STAT64 && defined LINUX && defined X86_64 +/* + * Linux x86_64 has unified `struct stat' but its i386 biarch needs + * `struct stat64'. Its <asm-i386/stat.h> definition expects 32-bit `long'. + * <linux/include/asm-x86_64/ia32.h> is not in the public includes set. + * __GNUC__ is needed for the required __attribute__ below. + */ +struct stat64 { + unsigned long long st_dev; + unsigned char __pad0[4]; + unsigned int __st_ino; + unsigned int st_mode; + unsigned int st_nlink; + unsigned int st_uid; + unsigned int st_gid; + unsigned long long st_rdev; + unsigned char __pad3[4]; + long long st_size; + unsigned int st_blksize; + unsigned long long st_blocks; + unsigned int st_atime; + unsigned int st_atime_nsec; + unsigned int st_mtime; + unsigned int st_mtime_nsec; + unsigned int st_ctime; + unsigned int st_ctime_nsec; + unsigned long long st_ino; +} __attribute__((packed)); +# define HAVE_STAT64 1 +# define STAT64_SIZE 96 +#endif + +#ifdef HAVE_STAT64 +static void +printstat64(struct tcb *tcp, long addr) +{ + struct stat64 statbuf; + +#ifdef STAT64_SIZE + (void) sizeof(char[sizeof statbuf == STAT64_SIZE ? 1 : -1]); +#endif + + if (!addr) { + tprintf("NULL"); + return; + } + if (syserror(tcp) || !verbose(tcp)) { + tprintf("%#lx", addr); + return; + } + +#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 defined LINUX && defined X86_64 + if (current_personality == 0) { + printstat(tcp, addr); + return; + } +#endif + + 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: +#ifdef HAVE_LONG_LONG + tprintf("st_size=%llu, ", (unsigned long long) statbuf.st_size); +#else + tprintf("st_size=%lu, ", (unsigned long) statbuf.st_size); +#endif + 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(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(struct tcb *tcp, long addr) +{ + struct __old_kernel_stat statbuf; + struct stat newstatbuf; + + if (!addr) { + tprintf("NULL"); + return; + } + if (syserror(tcp) || !verbose(tcp)) { + tprintf("%#lx", addr); + return; + } + +#ifdef LINUXSPARC + if (current_personality == 1) { + printstatsol(tcp, addr); + return; + } +#endif /* LINUXSPARC */ + + 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(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(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 +} + +#ifdef LINUX +static const struct xlat fstatatflags[] = { +#ifndef AT_SYMLINK_NOFOLLOW +# define AT_SYMLINK_NOFOLLOW 0x100 +#endif + { AT_SYMLINK_NOFOLLOW, "AT_SYMLINK_NOFOLLOW" }, + { 0, NULL }, +}; +#define utimensatflags fstatatflags + +int +sys_newfstatat(struct tcb *tcp) +{ + if (entering(tcp)) { + print_dirfd(tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[1]); + tprintf(", "); + } else { +#if defined HAVE_STAT64 && !(defined POWERPC && defined __powerpc64__) + printstat64(tcp, tcp->u_arg[2]); +#else + printstat(tcp, tcp->u_arg[2]); +#endif + tprintf(", "); + printflags(fstatatflags, tcp->u_arg[3], "AT_???"); + } + return 0; +} +#endif + +#if defined(LINUX) && defined(HAVE_STRUCT___OLD_KERNEL_STAT) +int +sys_oldstat(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%lu, ", tcp->u_arg[0]); + } else { + printstatfs(tcp, tcp->u_arg[1]); + } + return 0; +} + +#if defined LINUX && defined HAVE_STATFS64 +static void +printstatfs64(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(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(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(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(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(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(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(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + } + return 0; +} + +static int +decode_mkdir(struct tcb *tcp, int offset) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[offset]); + tprintf(", %#lo", tcp->u_arg[offset + 1]); + } + return 0; +} + +int +sys_mkdir(struct tcb *tcp) +{ + return decode_mkdir(tcp, 0); +} + +#ifdef LINUX +int +sys_mkdirat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_mkdir(tcp, 1); +} +#endif + +int +sys_rmdir(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + } + return 0; +} + +int +sys_fchdir(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld", tcp->u_arg[0]); + } + return 0; +} + +int +sys_chroot(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + } + return 0; +} + +#if defined(SUNOS4) || defined(SVR4) +int +sys_fchroot(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld", tcp->u_arg[0]); + } + return 0; +} +#endif /* SUNOS4 || SVR4 */ + +int +sys_link(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + tprintf(", "); + printpath(tcp, tcp->u_arg[1]); + } + return 0; +} + +#ifdef LINUX +int +sys_linkat(struct tcb *tcp) +{ + if (entering(tcp)) { + print_dirfd(tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[1]); + tprintf(", "); + print_dirfd(tcp->u_arg[2]); + printpath(tcp, tcp->u_arg[3]); + tprintf(", %ld", tcp->u_arg[4]); + } + return 0; +} +#endif + +int +sys_unlink(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + } + return 0; +} + +#ifdef LINUX +static const struct xlat unlinkatflags[] = { +#ifndef AT_REMOVEDIR +# define AT_REMOVEDIR 0x200 +#endif + { AT_REMOVEDIR, "AT_REMOVEDIR" }, + { 0, NULL }, +}; + +int +sys_unlinkat(struct tcb *tcp) +{ + if (entering(tcp)) { + print_dirfd(tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[1]); + tprintf(", "); + printflags(unlinkatflags, tcp->u_arg[2], "AT_???"); + } + return 0; +} +#endif + +int +sys_symlink(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + tprintf(", "); + printpath(tcp, tcp->u_arg[1]); + } + return 0; +} + +#ifdef LINUX +int +sys_symlinkat(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + tprintf(", "); + print_dirfd(tcp->u_arg[1]); + printpath(tcp, tcp->u_arg[2]); + } + return 0; +} +#endif + +static int +decode_readlink(struct tcb *tcp, int offset) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[offset]); + tprintf(", "); + } else { + if (syserror(tcp)) + tprintf("%#lx", tcp->u_arg[offset + 1]); + else + printpathn(tcp, tcp->u_arg[offset + 1], tcp->u_rval); + tprintf(", %lu", tcp->u_arg[offset + 2]); + } + return 0; +} + +int +sys_readlink(struct tcb *tcp) +{ + return decode_readlink(tcp, 0); +} + +#ifdef LINUX +int +sys_readlinkat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_readlink(tcp, 1); +} +#endif + +int +sys_rename(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + tprintf(", "); + printpath(tcp, tcp->u_arg[1]); + } + return 0; +} + +#ifdef LINUX +int +sys_renameat(struct tcb *tcp) +{ + if (entering(tcp)) { + print_dirfd(tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[1]); + tprintf(", "); + print_dirfd(tcp->u_arg[2]); + printpath(tcp, tcp->u_arg[3]); + } + return 0; +} +#endif + +int +sys_chown(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + printuid(", ", tcp->u_arg[1]); + printuid(", ", tcp->u_arg[2]); + } + return 0; +} + +#ifdef LINUX +int +sys_fchownat(struct tcb *tcp) +{ + if (entering(tcp)) { + print_dirfd(tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[1]); + printuid(", ", tcp->u_arg[2]); + printuid(", ", tcp->u_arg[3]); + tprintf(", "); + printflags(fstatatflags, tcp->u_arg[4], "AT_???"); + } + return 0; +} +#endif + +int +sys_fchown(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld", tcp->u_arg[0]); + printuid(", ", tcp->u_arg[1]); + printuid(", ", tcp->u_arg[2]); + } + return 0; +} + +static int +decode_chmod(struct tcb *tcp, int offset) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[offset]); + tprintf(", %#lo", tcp->u_arg[offset + 1]); + } + return 0; +} + +int +sys_chmod(struct tcb *tcp) +{ + return decode_chmod(tcp, 0); +} + +#ifdef LINUX +int +sys_fchmodat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_chmod(tcp, 1); +} +#endif + +int +sys_fchmod(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(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + tprintf(", "); + printtv_bitness(tcp, tcp->u_arg[1], BITNESS_32, 0); + } + return 0; +} +#endif + +static int +decode_utimes(struct tcb *tcp, int offset, int special) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[offset]); + tprintf(", "); + if (tcp->u_arg[offset + 1] == 0) + tprintf("NULL"); + else { + tprintf("{"); + printtv_bitness(tcp, tcp->u_arg[offset + 1], + BITNESS_CURRENT, special); + tprintf(", "); + printtv_bitness(tcp, tcp->u_arg[offset + 1] + + sizeof (struct timeval), + BITNESS_CURRENT, special); + tprintf("}"); + } + } + return 0; +} + +int +sys_utimes(struct tcb *tcp) +{ + return decode_utimes(tcp, 0, 0); +} + +#ifdef LINUX +int +sys_futimesat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_utimes(tcp, 1, 0); +} + +int +sys_utimensat(struct tcb *tcp) +{ + if (entering(tcp)) { + print_dirfd(tcp->u_arg[0]); + decode_utimes(tcp, 1, 1); + tprintf(", "); + printflags(utimensatflags, tcp->u_arg[3], "AT_???"); + } + return 0; +} +#endif + +int +sys_utime(struct tcb *tcp) +{ + union { + long utl[2]; + int uti[2]; + } u; + + 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], + 2 * personality_wordsize[current_personality], + (char *) &u) < 0) + tprintf("[?, ?]"); + else if (personality_wordsize[current_personality] + == sizeof u.utl[0]) { + tprintf("[%s,", sprinttime(u.utl[0])); + tprintf(" %s]", sprinttime(u.utl[1])); + } + else if (personality_wordsize[current_personality] + == sizeof u.uti[0]) { + tprintf("[%s,", sprinttime(u.uti[0])); + tprintf(" %s]", sprinttime(u.uti[1])); + } + else + abort(); + } + return 0; +} + +static int +decode_mknod(struct tcb *tcp, int offset) +{ + int mode = tcp->u_arg[offset + 1]; + + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[offset]); + 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[offset + 2] >> 18) & 0x3fff), + (unsigned long) (tcp->u_arg[offset + 2] & 0x3ffff)); + else +#endif + tprintf(", makedev(%lu, %lu)", + (unsigned long) major(tcp->u_arg[offset + 2]), + (unsigned long) minor(tcp->u_arg[offset + 2])); + break; + default: + break; + } + } + return 0; +} + +int +sys_mknod(struct tcb *tcp) +{ + return decode_mknod(tcp, 0); +} + +#ifdef LINUX +int +sys_mknodat(struct tcb *tcp) +{ + if (entering(tcp)) + print_dirfd(tcp->u_arg[0]); + return decode_mknod(tcp, 1); +} +#endif + +#ifdef FREEBSD +int +sys_mkfifo(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + tprintf(", %#lo", tcp->u_arg[1]); + } + return 0; +} +#endif /* FREEBSD */ + +int +sys_fsync(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld", tcp->u_arg[0]); + } + return 0; +} + +#ifdef LINUX + +static void +printdir(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(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(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; + buf = len ? malloc(len) : NULL; + if (len && !buf) { + 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(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; + buf = len ? malloc(len) : NULL; + if (len && !buf) { + 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=%" PRIu64 ", d_off=%" PRId64 ", ", + 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 */ + 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; +} +#endif + +#ifdef FREEBSD +int +sys_getdirentries(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); + } + 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); + 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(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(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(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(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(struct tcb *tcp) +{ + if (entering(tcp)) + printtv(tcp, tcp->u_arg[0]); + return 0; +} + +int +sys_aiocancel(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(struct tcb *tcp, int failed, + unsigned long arg, + unsigned long insize, + unsigned long 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 (i > 0 && 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(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(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(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(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(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(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(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(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(struct tcb *tcp) +{ + if (entering(tcp)) { + int argn; + tprintf("%ld, ", tcp->u_arg[0]); + argn = printllval(tcp, "%lld", 1); + tprintf(", %ld, ", tcp->u_arg[argn++]); + printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???"); + } + return 0; +} +#endif + + +int +sys_fadvise64_64(struct tcb *tcp) +{ + if (entering(tcp)) { + int argn; + tprintf("%ld, ", tcp->u_arg[0]); +#if defined ARM || defined POWERPC + argn = printllval(tcp, "%lld, ", 2); +#else + argn = printllval(tcp, "%lld, ", 1); +#endif + argn = printllval(tcp, "%lld, ", argn); +#if defined ARM || defined POWERPC + printxval(advise, tcp->u_arg[1], "POSIX_FADV_???"); +#else + printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???"); +#endif + } + return 0; +} + +#ifdef LINUX +static const struct xlat inotify_modes[] = { + { 0x00000001, "IN_ACCESS" }, + { 0x00000002, "IN_MODIFY" }, + { 0x00000004, "IN_ATTRIB" }, + { 0x00000008, "IN_CLOSE_WRITE" }, + { 0x00000010, "IN_CLOSE_NOWRITE" }, + { 0x00000020, "IN_OPEN" }, + { 0x00000040, "IN_MOVED_FROM" }, + { 0x00000080, "IN_MOVED_TO" }, + { 0x00000100, "IN_CREATE" }, + { 0x00000200, "IN_DELETE" }, + { 0x00000400, "IN_DELETE_SELF" }, + { 0x00000800, "IN_MOVE_SELF" }, + { 0x00002000, "IN_UNMOUNT" }, + { 0x00004000, "IN_Q_OVERFLOW" }, + { 0x00008000, "IN_IGNORED" }, + { 0x01000000, "IN_ONLYDIR" }, + { 0x02000000, "IN_DONT_FOLLOW" }, + { 0x20000000, "IN_MASK_ADD" }, + { 0x40000000, "IN_ISDIR" }, + { 0x80000000, "IN_ONESHOT" } +}; + +int +sys_inotify_add_watch(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld, ", tcp->u_arg[0]); + printpath(tcp, tcp->u_arg[1]); + tprintf(", "); + printflags(inotify_modes, tcp->u_arg[2], "IN_???"); + } + return 0; +} + +int +sys_inotify_rm_watch(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld, %ld", tcp->u_arg[0], tcp->u_arg[1]); + } + return 0; +} + +int +sys_inotify_init1(struct tcb *tcp) +{ + if (entering(tcp)) + printflags(open_mode_flags, tcp->u_arg[0], "O_???"); + return 0; +} + +int +sys_fallocate(struct tcb *tcp) +{ + if (entering(tcp)) { + int argn; + tprintf("%ld, ", tcp->u_arg[0]); /* fd */ + tprintf("%#lo, ", tcp->u_arg[1]); /* mode */ + argn = printllval(tcp, "%llu, ", 2); /* offset */ + printllval(tcp, "%llu", argn); /* len */ + } + return 0; +} +#endif
diff --git a/strace-4.5.20/freebsd/i386/errnoent.h b/strace-4.5.20/freebsd/i386/errnoent.h new file mode 100644 index 0000000..d18b9ac --- /dev/null +++ b/strace-4.5.20/freebsd/i386/errnoent.h
@@ -0,0 +1,87 @@ + "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 */ + "EPROCLIM", /* 67 */ + "EUSERS", /* 68 */ + "EDQUOT", /* 69 */ + "ESTALE", /* 70 */ + "EREMOTE", /* 71 */ + "EBADRPC", /* 72 */ + "ERPCMISMATCH", /* 73 */ + "EPROGUNAVAIL", /* 74 */ + "EPROGMISMATCH", /* 75 */ + "EPROCUNAVAIL", /* 76 */ + "ENOLCK", /* 77 */ + "ENOSYS", /* 78 */ + "EFTYPE", /* 79 */ + "EAUTH", /* 80 */ + "ENEEDAUTH", /* 81 */ + "EIDRM", /* 82 */ + "ENOMSG", /* 83 */ + "EOVERFLOW", /* 84 */ + "ECANCELED", /* 85 */ + "ELAST", /* 86 */
diff --git a/strace-4.5.20/freebsd/i386/ioctlent.h b/strace-4.5.20/freebsd/i386/ioctlent.h new file mode 100644 index 0000000..0448e4c --- /dev/null +++ b/strace-4.5.20/freebsd/i386/ioctlent.h
@@ -0,0 +1,1056 @@ +{"sys/timepps.h", "PPS_IOC_CREATE", 0x20003101}, +{"sys/timepps.h", "PPS_IOC_DESTROY", 0x20003102}, +{"machine/pcaudioio.h", "AUDIO_DRAIN", 0x20004103}, +{"machine/pcaudioio.h", "AUDIO_FLUSH", 0x20004104}, +{"sys/dataacq.h", "AD_SUPPORTED_GAINS", 0x20004105}, +{"sys/dataacq.h", "AD_GAINS_SET", 0x20004106}, +{"sys/dataacq.h", "AD_GAINS_GET", 0x20004107}, +{"net/bpf.h", "BIOCFLUSH", 0x20004268}, +{"net/bpf.h", "BIOCPROMISC", 0x20004269}, +{"sys/soundcard.h", "SNDCTL_COPR_RESET", 0x20004300}, +{"machine/soundcard.h", "SNDCTL_COPR_RESET", 0x20004300}, +{"machine/pcvt_ioctl.h", "KBDRESET", 0x20004b01}, +{"sys/kbio.h", "KDSKBMODE", 0x20004b07}, +{"machine/pcvt_ioctl.h", "KDSKBMODE", 0x20004b07}, +{"sys/kbio.h", "KDMKTONE", 0x20004b08}, +{"machine/pcvt_ioctl.h", "KDMKTONE", 0x20004b08}, +{"machine/pcvt_ioctl.h", "KDSETMODE", 0x20004b0a}, +{"sys/consio.h", "KDSETMODE", 0x20004b0a}, +{"sys/consio.h", "KDSBORDER", 0x20004b0d}, +{"machine/pcvt_ioctl.h", "KBDDEFAULT", 0x20004b14}, +{"sys/kbio.h", "KDSKBSTATE", 0x20004b14}, +{"machine/pcvt_ioctl.h", "KDENABIO", 0x20004b3c}, +{"sys/kbio.h", "KDENABIO", 0x20004b3c}, +{"sys/kbio.h", "KDDISABIO", 0x20004b3d}, +{"machine/pcvt_ioctl.h", "KDDISABIO", 0x20004b3d}, +{"sys/kbio.h", "KIOCSOUND", 0x20004b3f}, +{"sys/kbio.h", "KDSETLED", 0x20004b42}, +{"machine/pcvt_ioctl.h", "KDSETLED", 0x20004b42}, +{"machine/pcvt_ioctl.h", "KDSETRAD", 0x20004b43}, +{"sys/kbio.h", "KDSETRAD", 0x20004b43}, +{"machine/pcaudioio.h", "AUDIO_COMPAT_FLUSH", 0x20005000}, +{"sys/soundcard.h", "SNDCTL_DSP_RESET", 0x20005000}, +{"machine/soundcard.h", "SNDCTL_DSP_RESET", 0x20005000}, +{"sys/soundcard.h", "SNDCTL_DSP_SYNC", 0x20005001}, +{"machine/soundcard.h", "SNDCTL_DSP_SYNC", 0x20005001}, +{"machine/pcaudioio.h", "AUDIO_COMPAT_DRAIN", 0x20005001}, +{"machine/apm_bios.h", "APMIO_SUSPEND", 0x20005001}, +{"machine/apm_bios.h", "APMIO_ENABLE", 0x20005005}, +{"machine/apm_bios.h", "APMIO_DISABLE", 0x20005006}, +{"machine/apm_bios.h", "APMIO_HALTCPU", 0x20005007}, +{"sys/soundcard.h", "SNDCTL_DSP_POST", 0x20005008}, +{"machine/soundcard.h", "SNDCTL_DSP_POST", 0x20005008}, +{"machine/apm_bios.h", "APMIO_NOTHALTCPU", 0x20005008}, +{"machine/apm_bios.h", "APMIO_STANDBY", 0x2000500c}, +{"machine/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x2000500e}, +{"sys/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x2000500e}, +{"machine/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x20005015}, +{"sys/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x20005015}, +{"machine/apm_bios.h", "APMIO_REJECTLASTREQ", 0x20005065}, +{"machine/soundcard.h", "SNDCTL_SEQ_RESET", 0x20005100}, +{"sys/soundcard.h", "SNDCTL_SEQ_RESET", 0x20005100}, +{"sys/soundcard.h", "SNDCTL_SEQ_SYNC", 0x20005101}, +{"machine/soundcard.h", "SNDCTL_SEQ_SYNC", 0x20005101}, +{"machine/soundcard.h", "SNDCTL_SEQ_PANIC", 0x20005111}, +{"sys/soundcard.h", "SNDCTL_SEQ_PANIC", 0x20005111}, +{"sys/consio.h", "SW_B40x25", 0x20005300}, +{"sys/consio.h", "SW_C40x25", 0x20005301}, +{"machine/speaker.h", "SPKRTUNE", 0x20005302}, +{"sys/consio.h", "SW_B80x25", 0x20005302}, +{"sys/consio.h", "SW_C80x25", 0x20005303}, +{"sys/consio.h", "SW_BG320", 0x20005304}, +{"sys/consio.h", "SW_CG320", 0x20005305}, +{"sys/consio.h", "SW_BG640", 0x20005306}, +{"sys/consio.h", "SW_EGAMONO80x25", 0x20005307}, +{"machine/gsc.h", "GSC_SRESSW", 0x2000530b}, +{"machine/asc_ioctl.h", "ASC_SRESSW", 0x2000530b}, +{"sys/consio.h", "SW_CG320_D", 0x2000530d}, +{"sys/consio.h", "SW_CG640_E", 0x2000530e}, +{"sys/consio.h", "SW_EGAMONOAPA", 0x2000530f}, +{"sys/consio.h", "SW_CG640x350", 0x20005310}, +{"sys/consio.h", "SW_ENH_MONOAPA2", 0x20005311}, +{"sys/consio.h", "SW_ENH_CG640", 0x20005312}, +{"sys/consio.h", "SW_ENH_B40x25", 0x20005313}, +{"sys/consio.h", "SW_ENH_C40x25", 0x20005314}, +{"sys/consio.h", "SW_ENH_B80x25", 0x20005315}, +{"sys/consio.h", "SW_ENH_C80x25", 0x20005316}, +{"sys/consio.h", "SW_VGA_C40x25", 0x20005317}, +{"sys/consio.h", "SW_VGA_C80x25", 0x20005318}, +{"sys/consio.h", "SW_VGA_M80x25", 0x20005319}, +{"sys/consio.h", "SW_VGA11", 0x2000531a}, +{"sys/consio.h", "SW_BG640x480", 0x2000531a}, +{"sys/consio.h", "SW_CG640x480", 0x2000531b}, +{"sys/consio.h", "SW_VGA12", 0x2000531b}, +{"sys/consio.h", "SW_VGA13", 0x2000531c}, +{"sys/consio.h", "SW_VGA_CG320", 0x2000531c}, +{"sys/consio.h", "SW_VGA_C80x50", 0x2000531e}, +{"sys/consio.h", "SW_VGA_M80x50", 0x2000531f}, +{"sys/consio.h", "SW_VGA_C80x30", 0x20005320}, +{"sys/consio.h", "SW_VGA_M80x30", 0x20005321}, +{"sys/consio.h", "SW_VGA_C80x60", 0x20005322}, +{"sys/consio.h", "SW_VGA_M80x60", 0x20005323}, +{"sys/consio.h", "SW_VGA_CG640", 0x20005324}, +{"sys/consio.h", "SW_VGA_MODEX", 0x20005325}, +{"sys/consio.h", "SW_VGA_C90x25", 0x20005328}, +{"sys/consio.h", "SW_VGA_M90x25", 0x20005329}, +{"sys/consio.h", "SW_VGA_C90x30", 0x2000532a}, +{"sys/consio.h", "SW_VGA_M90x30", 0x2000532b}, +{"sys/consio.h", "SW_VGA_C90x43", 0x2000532c}, +{"sys/consio.h", "SW_VGA_M90x43", 0x2000532d}, +{"sys/consio.h", "SW_VGA_C90x50", 0x2000532e}, +{"sys/consio.h", "SW_VGA_M90x50", 0x2000532f}, +{"sys/consio.h", "SW_VGA_C90x60", 0x20005330}, +{"sys/consio.h", "SW_VGA_M90x60", 0x20005331}, +{"sys/consio.h", "SW_PC98_80x25", 0x20005362}, +{"sys/consio.h", "SW_PC98_80x30", 0x20005363}, +{"sys/consio.h", "SW_ENH_B80x43", 0x20005370}, +{"sys/consio.h", "SW_ENH_C80x43", 0x20005371}, +{"sys/consio.h", "SW_TEXT_80x25", 0x200053c8}, +{"sys/consio.h", "SW_TEXT_80x30", 0x200053c9}, +{"sys/consio.h", "SW_TEXT_80x43", 0x200053ca}, +{"sys/consio.h", "SW_TEXT_80x50", 0x200053cb}, +{"sys/consio.h", "SW_TEXT_80x60", 0x200053cc}, +{"sys/consio.h", "SW_TEXT_132x25", 0x200053cd}, +{"sys/consio.h", "SW_TEXT_132x30", 0x200053ce}, +{"sys/consio.h", "SW_TEXT_132x43", 0x200053cf}, +{"sys/consio.h", "SW_TEXT_132x50", 0x200053d0}, +{"sys/consio.h", "SW_TEXT_132x60", 0x200053d1}, +{"sys/consio.h", "SW_MCAMODE", 0x200053ff}, +{"machine/soundcard.h", "SNDCTL_TMR_START", 0x20005402}, +{"sys/soundcard.h", "SNDCTL_TMR_START", 0x20005402}, +{"sys/soundcard.h", "SNDCTL_TMR_STOP", 0x20005403}, +{"machine/soundcard.h", "SNDCTL_TMR_STOP", 0x20005403}, +{"machine/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x20005404}, +{"sys/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x20005404}, +{"dev/usb/usb.h", "USB_DISCOVER", 0x20005503}, +{"sys/consio.h", "SW_VESA_CG640x400", 0x20005600}, +{"sys/consio.h", "SW_VESA_CG640x480", 0x20005601}, +{"sys/consio.h", "SW_VESA_800x600", 0x20005602}, +{"sys/consio.h", "SW_VESA_CG800x600", 0x20005603}, +{"sys/consio.h", "SW_VESA_1024x768", 0x20005604}, +{"sys/consio.h", "SW_VESA_CG1024x768", 0x20005605}, +{"sys/consio.h", "SW_VESA_1280x1024", 0x20005606}, +{"sys/consio.h", "SW_VESA_CG1280x1024", 0x20005607}, +{"sys/consio.h", "SW_VESA_C80x60", 0x20005608}, +{"sys/consio.h", "SW_VESA_C132x25", 0x20005609}, +{"sys/consio.h", "SW_VESA_C132x43", 0x2000560a}, +{"sys/consio.h", "SW_VESA_C132x50", 0x2000560b}, +{"sys/consio.h", "SW_VESA_C132x60", 0x2000560c}, +{"sys/consio.h", "SW_VESA_32K_320", 0x2000560d}, +{"sys/consio.h", "SW_VESA_64K_320", 0x2000560e}, +{"sys/consio.h", "SW_VESA_FULL_320", 0x2000560f}, +{"sys/consio.h", "SW_VESA_32K_640", 0x20005610}, +{"sys/consio.h", "SW_VESA_64K_640", 0x20005611}, +{"sys/consio.h", "SW_VESA_FULL_640", 0x20005612}, +{"sys/consio.h", "SW_VESA_32K_800", 0x20005613}, +{"sys/consio.h", "SW_VESA_64K_800", 0x20005614}, +{"sys/consio.h", "SW_VESA_FULL_800", 0x20005615}, +{"sys/consio.h", "SW_VESA_32K_1024", 0x20005616}, +{"sys/consio.h", "SW_VESA_64K_1024", 0x20005617}, +{"sys/consio.h", "SW_VESA_FULL_1024", 0x20005618}, +{"sys/consio.h", "SW_VESA_32K_1280", 0x20005619}, +{"sys/consio.h", "SW_VESA_64K_1280", 0x2000561a}, +{"sys/consio.h", "SW_VESA_FULL_1280", 0x2000561b}, +{"sys/wormio.h", "WORMIOCFINISHTRACK", 0x20005717}, +{"sys/consio.h", "CONS_IO", 0x20006303}, +{"sys/cdio.h", "CDIOCSETMONO", 0x2000630c}, +{"sys/cdio.h", "CDIOCSETSTERIO", 0x2000630d}, +{"sys/cdio.h", "CDIOCSETSTEREO", 0x2000630d}, +{"sys/cdio.h", "CDIOCSETMUTE", 0x2000630e}, +{"sys/cdio.h", "CDIOCSETLEFT", 0x2000630f}, +{"sys/cdio.h", "CDIOCSETRIGHT", 0x20006310}, +{"sys/cdio.h", "CDIOCSETDEBUG", 0x20006311}, +{"sys/cdio.h", "CDIOCCLRDEBUG", 0x20006312}, +{"sys/cdio.h", "CDIOCPAUSE", 0x20006313}, +{"sys/cdio.h", "CDIOCRESUME", 0x20006314}, +{"sys/cdio.h", "CDIOCRESET", 0x20006315}, +{"sys/cdio.h", "CDIOCSTART", 0x20006316}, +{"sys/cdio.h", "CDIOCSTOP", 0x20006317}, +{"sys/cdio.h", "CDIOCEJECT", 0x20006318}, +{"sys/cdio.h", "CDIOCALLOW", 0x2000631a}, +{"sys/cdio.h", "CDIOCPREVENT", 0x2000631b}, +{"sys/cdio.h", "CDIOCCLOSE", 0x2000631c}, +{"sys/wormio.h", "CDRIOCBLANK", 0x20006364}, +{"sys/cdrio.h", "CDRIOCBLANK", 0x20006364}, +{"sys/cdrio.h", "CDRIOCOPENDISK", 0x20006366}, +{"sys/cdrio.h", "CDRIOCCLOSEDISK", 0x20006367}, +{"sys/consio.h", "CONS_SETWINORG", 0x20006368}, +{"sys/cdrio.h", "CDRIOCCLOSETRACK", 0x20006369}, +{"sys/consio.h", "CONS_SETKBD", 0x2000636e}, +{"sys/consio.h", "CONS_RELKBD", 0x2000636f}, +{"sys/filio.h", "FIOCLEX", 0x20006601}, +{"sys/filio.h", "FIONCLEX", 0x20006602}, +{"machine/iic.h", "I2CSTOP", 0x20006902}, +{"sys/mtio.h", "MTIOCIEOT", 0x20006d03}, +{"sys/mtio.h", "MTIOCEEOT", 0x20006d04}, +{"machine/spigot.h", "SPIGOT_IOPL_ON", 0x20007306}, +{"machine/spigot.h", "SPIGOT_IOPL_OFF", 0x20007307}, +{"machine/cdk.h", "STL_BINTR", 0x20007314}, +{"machine/cdk.h", "STL_BSTART", 0x20007315}, +{"machine/cdk.h", "STL_BSTOP", 0x20007316}, +{"machine/cdk.h", "STL_BRESET", 0x20007317}, +{"sys/ioctl_compat.h", "TIOCHPCL", 0x20007402}, +{"sys/ttycom.h", "TIOCEXCL", 0x2000740d}, +{"sys/ttycom.h", "TIOCNXCL", 0x2000740e}, +{"net/if_ppp.h", "PPPIOCXFERUNIT", 0x2000744e}, +{"sys/ttycom.h", "TIOCDRAIN", 0x2000745e}, +{"sys/ttycom.h", "TIOCSIG", 0x2000745f}, +{"net/if_tun.h", "TUNSIFPID", 0x2000745f}, +{"sys/ttycom.h", "TIOCSCTTY", 0x20007461}, +{"sys/ioctl_compat.h", "OTIOCCONS", 0x20007462}, +{"sys/ttycom.h", "TIOCSTAT", 0x20007465}, +{"sys/ttycom.h", "TIOCSTART", 0x2000746e}, +{"sys/ttycom.h", "TIOCSTOP", 0x2000746f}, +{"sys/ttycom.h", "TIOCNOTTY", 0x20007471}, +{"sys/ttycom.h", "TIOCCDTR", 0x20007478}, +{"machine/pcvt_ioctl.h", "CONSOLE_X_MODE_ON", 0x20007479}, +{"sys/ttycom.h", "TIOCSDTR", 0x20007479}, +{"machine/pcvt_ioctl.h", "CONSOLE_X_MODE_OFF", 0x2000747a}, +{"sys/ttycom.h", "TIOCCBRK", 0x2000747a}, +{"sys/ttycom.h", "TIOCSBRK", 0x2000747b}, +{"sys/consio.h", "VT_RELDISP", 0x20007604}, +{"machine/pcvt_ioctl.h", "VT_RELDISP", 0x20007604}, +{"sys/consio.h", "VT_ACTIVATE", 0x20007605}, +{"machine/pcvt_ioctl.h", "VT_ACTIVATE", 0x20007605}, +{"sys/consio.h", "VT_WAITACTIVE", 0x20007606}, +{"machine/pcvt_ioctl.h", "VT_WAITACTIVE", 0x20007606}, +{"machine/ioctl_ctx.h", "CTX_LIVE", 0x20007801}, +{"machine/ioctl_ctx.h", "CTX_GRAB", 0x20007802}, +{"machine/ioctl_ctx.h", "CTX_H_ORGANIZE", 0x20007803}, +{"machine/ioctl_ctx.h", "CTX_V_ORGANIZE", 0x20007804}, +{"cam/scsi/scsi_ses.h", "SESIOC_GETNOBJ", 0x20530001}, +{"cam/scsi/scsi_ses.h", "SESIOC_GETOBJMAP", 0x20530002}, +{"cam/scsi/scsi_ses.h", "SESIOC_GETENCSTAT", 0x20530003}, +{"cam/scsi/scsi_ses.h", "SESIOC_SETENCSTAT", 0x20530004}, +{"cam/scsi/scsi_ses.h", "SESIOC_GETOBJSTAT", 0x20530005}, +{"cam/scsi/scsi_ses.h", "SESIOC_SETOBJSTAT", 0x20530006}, +{"cam/scsi/scsi_ses.h", "SESIOC_GETTEXT", 0x20530007}, +{"cam/scsi/scsi_ses.h", "SESIOC_INIT", 0x20530008}, +{"machine/ioctl_meteor.h", "METEORGHUE", 0x40017806}, +{"machine/ioctl_meteor.h", "METEORGCHCV", 0x40017809}, +{"machine/ioctl_meteor.h", "METEORGBRIG", 0x4001780e}, +{"machine/ioctl_meteor.h", "METEORGCSAT", 0x4001780f}, +{"machine/ioctl_meteor.h", "METEORGCONT", 0x40017810}, +{"machine/ioctl_meteor.h", "METEORGHWS", 0x40017812}, +{"machine/ioctl_meteor.h", "METEORGVWS", 0x40017813}, +{"machine/ioctl_meteor.h", "METEORGTS", 0x40017814}, +{"machine/ioctl_bt848.h", "RADIO_GETMODE", 0x4001783a}, +{"machine/random.h", "MEM_RETURNIRQ", 0x40027203}, +{"machine/ioctl_meteor.h", "METEORSTATUS", 0x40027805}, +{"machine/ioctl_meteor.h", "METEORGFPS", 0x4002780b}, +{"machine/ioctl_meteor.h", "METEORGBT254", 0x40027811}, +{"machine/ioctl_bt848.h", "REMOTE_GETKEY", 0x40037847}, +{"sys/timepps.h", "PPS_IOC_GETCAP", 0x40043105}, +{"machine/i4b_tel_ioctl.h", "I4B_TEL_GETAUDIOFMT", 0x40044100}, +{"sys/dataacq.h", "AD_MICRO_PERIOD_GET", 0x40044102}, +{"sys/dataacq.h", "AD_NGAINS_GET", 0x40044103}, +{"sys/dataacq.h", "AD_NCHANS_GET", 0x40044104}, +{"machine/soundcard.h", "AIONWRITE", 0x4004410a}, +{"sys/soundcard.h", "AIONWRITE", 0x4004410a}, +{"net/bpf.h", "BIOCGBLEN", 0x40044266}, +{"net/bpf.h", "BIOCGDLT", 0x4004426a}, +{"net/bpf.h", "BIOCVERSION", 0x40044271}, +{"net/bpf.h", "BIOCGRSIG", 0x40044272}, +{"net/bpf.h", "BIOCGHDRCMPLT", 0x40044274}, +{"net/bpf.h", "BIOCGSEESENT", 0x40044276}, +{"cam/scsi/scsi_targetio.h", "TARGIOCFETCHEXCEPTION", 0x40044301}, +{"sys/fbio.h", "FBIOGVIDEO", 0x40044608}, +{"sys/fbio.h", "FBIOGCURMAX", 0x4004461c}, +{"machine/ioctl_fd.h", "FD_GOPTS", 0x40044640}, +{"sys/fbio.h", "FBIO_ADAPTER", 0x40044664}, +{"sys/fbio.h", "FBIO_ADPTYPE", 0x40044665}, +{"sys/fbio.h", "FBIO_GETMODE", 0x40044669}, +{"sys/fbio.h", "FBIO_GETWINORG", 0x4004466b}, +{"sys/fbio.h", "FBIO_GETLINEWIDTH", 0x4004466f}, +{"machine/joystick.h", "JOY_GETTIMEOUT", 0x40044a02}, +{"sys/joystick.h", "JOY_GETTIMEOUT", 0x40044a02}, +{"machine/joystick.h", "JOY_GET_X_OFFSET", 0x40044a05}, +{"sys/joystick.h", "JOY_GET_X_OFFSET", 0x40044a05}, +{"machine/joystick.h", "JOY_GET_Y_OFFSET", 0x40044a06}, +{"sys/joystick.h", "JOY_GET_Y_OFFSET", 0x40044a06}, +{"machine/pcvt_ioctl.h", "KBDGTPMAT", 0x40044b02}, +{"machine/pcvt_ioctl.h", "KBDGREPSW", 0x40044b04}, +{"machine/pcvt_ioctl.h", "KBDGLEDS", 0x40044b06}, +{"sys/kbio.h", "KDGKBMODE", 0x40044b06}, +{"machine/pcvt_ioctl.h", "KBDGLOCK", 0x40044b08}, +{"sys/consio.h", "KDGETMODE", 0x40044b09}, +{"sys/kbio.h", "KDGKBSTATE", 0x40044b13}, +{"sys/kbio.h", "KDGKBTYPE", 0x40044b40}, +{"sys/kbio.h", "KDGETLED", 0x40044b41}, +{"machine/pcvt_ioctl.h", "KDGETLED", 0x40044b41}, +{"machine/mouse.h", "MOUSE_GETLEVEL", 0x40044d04}, +{"machine/soundcard.h", "SOUND_PCM_READ_RATE", 0x40045002}, +{"sys/soundcard.h", "SOUND_PCM_READ_RATE", 0x40045002}, +{"machine/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x40045004}, +{"sys/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x40045004}, +{"sys/soundcard.h", "SOUND_PCM_READ_BITS", 0x40045005}, +{"machine/soundcard.h", "SOUND_PCM_READ_BITS", 0x40045005}, +{"sys/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x40045006}, +{"machine/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x40045006}, +{"machine/soundcard.h", "SOUND_PCM_READ_FILTER", 0x40045007}, +{"sys/soundcard.h", "SOUND_PCM_READ_FILTER", 0x40045007}, +{"machine/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x4004500b}, +{"sys/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x4004500b}, +{"machine/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x4004500f}, +{"sys/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x4004500f}, +{"sys/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x40045010}, +{"machine/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x40045010}, +{"sys/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x40045017}, +{"machine/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x40045017}, +{"machine/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x40045104}, +{"sys/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x40045104}, +{"machine/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x40045105}, +{"sys/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x40045105}, +{"sys/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x4004510a}, +{"machine/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x4004510a}, +{"sys/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x4004510b}, +{"machine/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x4004510b}, +{"machine/gsc.h", "GSC_GRES", 0x40045301}, +{"machine/asc_ioctl.h", "ASC_GRES", 0x40045301}, +{"machine/asc_ioctl.h", "ASC_GWIDTH", 0x40045303}, +{"machine/gsc.h", "GSC_GWIDTH", 0x40045303}, +{"machine/asc_ioctl.h", "ASC_GHEIGHT", 0x40045305}, +{"machine/gsc.h", "GSC_GHEIGHT", 0x40045305}, +{"machine/asc_ioctl.h", "ASC_GBLEN", 0x40045307}, +{"machine/gsc.h", "GSC_GBLEN", 0x40045307}, +{"machine/gsc.h", "GSC_GBTIME", 0x40045309}, +{"machine/asc_ioctl.h", "ASC_GBTIME", 0x40045309}, +{"machine/i4b_trace.h", "I4B_TRC_GET", 0x40045400}, +{"sys/ptio.h", "PTIOCGETTIMEOUT", 0x40045401}, +{"sys/snoop.h", "SNPGTTY", 0x40045459}, +{"dev/usb/usb.h", "USB_GET_CONFIG", 0x40045564}, +{"dev/usb/usb.h", "USB_GET_CM_OVER_DATA", 0x40045582}, +{"sys/wormio.h", "WORMIOERROR", 0x40045718}, +{"sys/wormio.h", "WORMIOCREADSESSIONINFO", 0x4004571f}, +{"sys/consio.h", "GIO_ATTR", 0x40046100}, +{"sys/consio.h", "GIO_COLOR", 0x40046300}, +{"sys/consio.h", "CONS_CURRENT", 0x40046301}, +{"sys/consio.h", "CONS_GET", 0x40046302}, +{"sys/cdio.h", "CDIOREADTOCHEADER", 0x40046304}, +{"sys/chio.h", "CHIOGPICKER", 0x40046304}, +{"sys/cdio.h", "CDIOCGETVOL", 0x4004630a}, +{"sys/consio.h", "CONS_IDLE", 0x4004630b}, +{"sys/consio.h", "CONS_GETVERS", 0x4004634a}, +{"sys/consio.h", "CONS_CURRENTADP", 0x40046364}, +{"sys/cdrio.h", "CDRIOCNEXTWRITEABLEADDR", 0x40046365}, +{"sys/wormio.h", "CDRIOCNEXTWRITEABLEADDR", 0x40046365}, +{"sys/cdrio.h", "CDRIOCGETBLOCKSIZE", 0x4004636b}, +{"sys/filio.h", "FIOGETLBA", 0x40046679}, +{"sys/filio.h", "FIODTYPE", 0x4004667a}, +{"sys/filio.h", "FIOGETOWN", 0x4004667b}, +{"sys/filio.h", "FIONREAD", 0x4004667f}, +{"sys/mtio.h", "MTIOCRDSPOS", 0x40046d05}, +{"sys/mtio.h", "MTIOCRDHPOS", 0x40046d06}, +{"sys/mtio.h", "MTIOCGETEOTMODEL", 0x40046d08}, +{"nwfs/nwfs.h", "NWFSIOC_GETCONN", 0x40046e01}, +{"nwfs/nwfs.h", "NWFSIOC_GETNS", 0x40046e03}, +{"sys/pioctl.h", "PIOCGFL", 0x40047007}, +{"netinet/ip_fil.h", "SIOCGETFF", 0x4004723f}, +{"netinet/ip_fil.h", "SIOCIPFFB", 0x40047242}, +{"netinet/ip_fil.h", "SIOCSWAPA", 0x40047245}, +{"sys/sockio.h", "SIOCGHIWAT", 0x40047301}, +{"sys/sockio.h", "SIOCGLOWAT", 0x40047303}, +{"sys/sockio.h", "SIOCATMARK", 0x40047307}, +{"sys/sockio.h", "SIOCGPGRP", 0x40047309}, +{"machine/cdk.h", "STL_GETPFLAG", 0x40047350}, +{"sys/ioctl_compat.h", "OTIOCGETD", 0x40047400}, +{"sys/ttycom.h", "TIOCMODG", 0x40047403}, +{"sys/ttycom.h", "TIOCGETD", 0x4004741a}, +{"net/if_ppp.h", "PPPIOCGMTU", 0x40047449}, +{"net/slip.h", "SLIOCGOUTFILL", 0x40047451}, +{"net/slip.h", "SLIOCGKEEPAL", 0x40047452}, +{"net/if_ppp.h", "PPPIOCGMRU", 0x40047453}, +{"net/if_ppp.h", "PPPIOCGRASYNCMAP", 0x40047455}, +{"sys/ttycom.h", "TIOCGDRAINWAIT", 0x40047456}, +{"net/if_ppp.h", "PPPIOCGUNIT", 0x40047456}, +{"net/slip.h", "SLIOCGUNIT", 0x40047458}, +{"net/if_ppp.h", "PPPIOCGASYNCMAP", 0x40047458}, +{"net/if_tun.h", "TUNGDEBUG", 0x40047459}, +{"net/if_ppp.h", "PPPIOCGFLAGS", 0x4004745a}, +{"sys/ttycom.h", "TIOCMGDTRWAIT", 0x4004745a}, +{"net/if_tun.h", "TUNGIFHEAD", 0x40047461}, +{"sys/ttycom.h", "TIOCMGET", 0x4004746a}, +{"sys/ttycom.h", "TIOCOUTQ", 0x40047473}, +{"sys/ttycom.h", "TIOCGPGRP", 0x40047477}, +{"sys/ioctl_compat.h", "TIOCLGET", 0x4004747c}, +{"sys/consio.h", "VT_OPENQRY", 0x40047601}, +{"machine/pcvt_ioctl.h", "VT_OPENQRY", 0x40047601}, +{"machine/pcvt_ioctl.h", "VT_GETACTIVE", 0x40047607}, +{"sys/consio.h", "VT_GETACTIVE", 0x40047607}, +{"sys/consio.h", "VT_GETINDEX", 0x40047608}, +{"machine/ioctl_meteor.h", "METEORGFMT", 0x40047807}, +{"machine/ioctl_meteor.h", "METEORGINPUT", 0x40047808}, +{"machine/ioctl_meteor.h", "METEORGSIGNAL", 0x4004780c}, +{"machine/ioctl_bt848.h", "TVTUNER_GETCHNL", 0x40047820}, +{"machine/ioctl_bt848.h", "TVTUNER_GETTYPE", 0x40047821}, +{"machine/ioctl_bt848.h", "TVTUNER_GETSTATUS", 0x40047822}, +{"machine/ioctl_bt848.h", "TVTUNER_GETFREQ", 0x40047824}, +{"machine/ioctl_bt848.h", "BT848_GHUE", 0x40047825}, +{"machine/ioctl_bt848.h", "BT848_GBRIG", 0x40047826}, +{"machine/ioctl_bt848.h", "BT848_GCSAT", 0x40047827}, +{"machine/ioctl_bt848.h", "BT848_GCONT", 0x40047828}, +{"machine/ioctl_bt848.h", "BT848_GVSAT", 0x40047829}, +{"machine/ioctl_bt848.h", "BT848_GUSAT", 0x4004782a}, +{"machine/ioctl_bt848.h", "BT848_SCBARS", 0x4004782b}, +{"machine/ioctl_bt848.h", "BT848_CCBARS", 0x4004782c}, +{"machine/ioctl_bt848.h", "BT848_GAUDIO", 0x4004782f}, +{"machine/ioctl_bt848.h", "BT848_GSTATUS", 0x40047831}, +{"machine/ioctl_bt848.h", "TVTUNER_GETAFC", 0x40047836}, +{"machine/ioctl_bt848.h", "BT848_GLNOTCH", 0x40047838}, +{"machine/ioctl_bt848.h", "RADIO_GETFREQ", 0x4004783b}, +{"machine/ioctl_bt848.h", "METEORGACTPIXFMT", 0x40047840}, +{"machine/ioctl_bt848.h", "BT848GFMT", 0x40047843}, +{"machine/ioctl_bt848.h", "BT848GCBUF", 0x40047844}, +{"machine/ioctl_bt848.h", "BT848_GPIO_GET_EN", 0x40047849}, +{"machine/ioctl_bt848.h", "BT848_GPIO_GET_DATA", 0x4004784b}, +{"sys/ioctl_compat.h", "TIOCGETP", 0x40067408}, +{"sys/ioctl_compat.h", "TIOCGETC", 0x40067412}, +{"sys/ioctl_compat.h", "TIOCGLTC", 0x40067474}, +{"sys/soundcard.h", "AIOGSIZE", 0x4008410b}, +{"machine/soundcard.h", "AIOGSIZE", 0x4008410b}, +{"net/bpf.h", "BIOCGRTIMEOUT", 0x4008426e}, +{"net/bpf.h", "BIOCGSTATS", 0x4008426f}, +{"sys/fbio.h", "FBIO_GETDISPSTART", 0x4008466d}, +{"sys/kbio.h", "KDGETREPEAT", 0x40084b67}, +{"sys/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x40085013}, +{"machine/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x40085013}, +{"machine/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x40085014}, +{"sys/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x40085014}, +{"sys/chio.h", "CHIOGPARAMS", 0x40086306}, +{"machine/spigot.h", "SPIGOT_GET_INFO", 0x40087304}, +{"net/if_ppp.h", "PPPIOCGIDLE", 0x4008744a}, +{"sys/ttycom.h", "TIOCDCDTIMESTAMP", 0x40087458}, +{"sys/ttycom.h", "TIOCTIMESTAMP", 0x40087459}, +{"net/if_tun.h", "TUNGIFINFO", 0x4008745c}, +{"sys/ttycom.h", "TIOCGWINSZ", 0x40087468}, +{"machine/pcvt_ioctl.h", "VT_GETMODE", 0x40087603}, +{"sys/consio.h", "VT_GETMODE", 0x40087603}, +{"machine/i4b_ioctl.h", "I4B_VR_REQ", 0x400c3409}, +{"machine/perfmon.h", "PMIOTSTAMP", 0x400c3506}, +{"machine/i4b_tel_ioctl.h", "I4B_TEL_VR_REQ", 0x400c4103}, +{"sys/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x400c5011}, +{"machine/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x400c5011}, +{"machine/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x400c5012}, +{"sys/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x400c5012}, +{"machine/i4b_rbch_ioctl.h", "I4B_RBCH_VR_REQ", 0x400c5202}, +{"sys/cdio.h", "CDIOCCAPABILITY", 0x400c631e}, +{"machine/ioctl_meteor.h", "METEORGETGEO", 0x400c7804}, +{"machine/i4b_debug.h", "I4B_CTL_GET_DEBUG", 0x40104300}, +{"machine/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x4010500c}, +{"sys/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x4010500c}, +{"machine/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x4010500d}, +{"sys/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x4010500d}, +{"dev/usb/usb.h", "USB_DEVICESTATS", 0x40105505}, +{"machine/soundcard.h", "AIOGFMT", 0x4010660c}, +{"sys/soundcard.h", "AIOGFMT", 0x4010660c}, +{"machine/ioctl_meteor.h", "METEORGVIDEO", 0x4010780d}, +{"machine/ioctl_bt848.h", "BT848_GCAPAREA", 0x40107845}, +{"dev/usb/usb.h", "USB_GET_DEVICE_DESC", 0x40125569}, +{"machine/pcvt_ioctl.h", "KBDMOUSEGET", 0x40144b19}, +{"machine/mouse.h", "MOUSE_GETHWINFO", 0x40144d01}, +{"sys/pioctl.h", "PIOCWAIT", 0x40147004}, +{"sys/pioctl.h", "PIOCSTATUS", 0x40147006}, +{"machine/ioctl_meteor.h", "METEORGCOUNT", 0x4014780a}, +{"sys/fbio.h", "FBIOGTYPE", 0x40184600}, +{"machine/mouse.h", "MOUSE_GETSTATUS", 0x40184d00}, +{"pccard/cardinfo.h", "PIOCGSTATE", 0x40185001}, +{"machine/apm_bios.h", "APMIO_GETINFO_OLD", 0x40185002}, +{"machine/mouse.h", "MOUSE_GETMODE", 0x401c4d02}, +{"sys/timepps.h", "PPS_IOC_GETPARAMS", 0x40203104}, +{"net/bpf.h", "BIOCGETIF", 0x4020426b}, +{"netinet/ip_nat.h", "SIOCGFRST", 0x40207254}, +{"net/if_ppp.h", "PPPIOCGXASYNCMAP", 0x40207450}, +{"sys/kbio.h", "KDGKBINFO", 0x40244b65}, +{"machine/apm_bios.h", "APMIO_NEXTEVENT", 0x40284164}, +{"netgraph/ng_message.h", "NGIOCGINFO", 0x40284e28}, +{"machine/ioctl_fd.h", "FD_GTYPE", 0x402c463e}, +{"sys/ttycom.h", "TIOCGETA", 0x402c7413}, +{"netinet/ip_nat.h", "SIOCGIPST", 0x40387255}, +{"machine/mouse.h", "MOUSE_GETVARS", 0x40404d06}, +{"machine/apm_bios.h", "APMIO_GETINFO", 0x4040500b}, +{"netinet/ip_nat.h", "SIOCGNATS", 0x40407252}, +{"sys/mtio.h", "MTIOCGET", 0x404c6d02}, +{"sys/fbio.h", "FBIOGATTR", 0x40584606}, +{"machine/pcaudioio.h", "AUDIO_GETINFO", 0x40844101}, +{"cam/scsi/scsi_targetio.h", "TARGIOCFETCHATIO", 0x409c4303}, +{"sys/fbio.h", "FBIO_ADPINFO", 0x40a44666}, +{"sys/consio.h", "GIO_SCRNMAP", 0x41006b02}, +{"sys/mtio.h", "MTIOCERRSTAT", 0x41006d07}, +{"machine/ioctl_ctx.h", "CTX_GET_LUT", 0x41007806}, +{"netinet/ip_fil.h", "SIOCGETFS", 0x410c7240}, +{"sys/disklabel.h", "DIOCGDINFO", 0x41146465}, +{"nwfs/nwfs.h", "NWFSIOC_GETEINFO", 0x414d6e02}, +{"dev/usb/usb.h", "USB_GET_DEVICEINFO", 0x41585570}, +{"dev/usb/usb.h", "USB_GET_REPORT_DESC", 0x44045515}, +{"sys/kbio.h", "GIO_DEADKEYMAP", 0x462a6b08}, +{"machine/ioctl_bt848.h", "BT848GCLIP", 0x46407842}, +{"sys/diskslice.h", "DIOCGSLICEINFO", 0x471c646f}, +{"sys/consio.h", "GIO_FONT8x8", 0x48006341}, +{"machine/pcvt_ioctl.h", "GIO_KEYMAP", 0x4a026b06}, +{"sys/kbio.h", "GIO_KEYMAP", 0x4a026b06}, +{"sys/consio.h", "GIO_FONT8x14", 0x4e006343}, +{"machine/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4fa44309}, +{"sys/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4fa44309}, +{"sys/consio.h", "GIO_FONT8x16", 0x50006345}, +{"sys/pioctl.h", "PIOCBIS", 0x80007001}, +{"sys/pioctl.h", "PIOCBIC", 0x80007002}, +{"sys/pioctl.h", "PIOCSFL", 0x80007003}, +{"sys/pioctl.h", "PIOCCONT", 0x80007005}, +{"sys/ttycom.h", "TIOCSTI", 0x80017472}, +{"machine/ioctl_meteor.h", "METEORSHUE", 0x80017806}, +{"machine/ioctl_meteor.h", "METEORSCHCV", 0x80017809}, +{"machine/ioctl_meteor.h", "METEORSBRIG", 0x8001780e}, +{"machine/ioctl_meteor.h", "METEORSCSAT", 0x8001780f}, +{"machine/ioctl_meteor.h", "METEORSCONT", 0x80017810}, +{"machine/ioctl_meteor.h", "METEORSHWS", 0x80017812}, +{"machine/ioctl_meteor.h", "METEORSVWS", 0x80017813}, +{"machine/ioctl_meteor.h", "METEORSTS", 0x80017814}, +{"pccard/cardinfo.h", "PIOCSREG", 0x80025065}, +{"sys/cdio.h", "CDIOCPITCH", 0x8002631d}, +{"machine/random.h", "MEM_SETIRQ", 0x80027201}, +{"machine/random.h", "MEM_CLEARIRQ", 0x80027202}, +{"machine/ioctl_meteor.h", "METEORSFPS", 0x8002780b}, +{"machine/ioctl_meteor.h", "METEORSBT254", 0x80027811}, +{"machine/i4b_ioctl.h", "I4B_ALERT_REQ", 0x80043408}, +{"machine/perfmon.h", "PMIOSTART", 0x80043502}, +{"machine/perfmon.h", "PMIOSTOP", 0x80043503}, +{"machine/perfmon.h", "PMIORESET", 0x80043505}, +{"machine/i4b_tel_ioctl.h", "I4B_TEL_SETAUDIOFMT", 0x80044101}, +{"sys/dataacq.h", "AD_MICRO_PERIOD_SET", 0x80044101}, +{"machine/i4b_tel_ioctl.h", "I4B_TEL_EMPTYINPUTQUEUE", 0x80044102}, +{"net/bpf.h", "BIOCIMMEDIATE", 0x80044270}, +{"net/bpf.h", "BIOCSRSIG", 0x80044273}, +{"net/bpf.h", "BIOCSHDRCMPLT", 0x80044275}, +{"net/bpf.h", "BIOCSSEESENT", 0x80044277}, +{"cam/scsi/scsi_targetio.h", "TARGIOCCLEAREXCEPTION", 0x80044302}, +{"machine/i4b_debug.h", "I4B_CTL_CLR_LAPDSTAT", 0x80044305}, +{"sys/fbio.h", "FBIOSVIDEO", 0x80044607}, +{"sys/fbio.h", "FBIOSCURPOS", 0x8004461a}, +{"sys/fbio.h", "FBIOGCURPOS", 0x8004461b}, +{"machine/ioctl_fd.h", "FD_SOPTS", 0x80044641}, +{"machine/ioctl_fd.h", "FD_DEBUG", 0x80044642}, +{"sys/fbio.h", "FBIO_SETMODE", 0x8004466a}, +{"sys/fbio.h", "FBIO_SETWINORG", 0x8004466c}, +{"sys/fbio.h", "FBIO_SETLINEWIDTH", 0x80044670}, +{"machine/joystick.h", "JOY_SETTIMEOUT", 0x80044a01}, +{"sys/joystick.h", "JOY_SETTIMEOUT", 0x80044a01}, +{"machine/joystick.h", "JOY_SET_X_OFFSET", 0x80044a03}, +{"sys/joystick.h", "JOY_SET_X_OFFSET", 0x80044a03}, +{"machine/joystick.h", "JOY_SET_Y_OFFSET", 0x80044a04}, +{"sys/joystick.h", "JOY_SET_Y_OFFSET", 0x80044a04}, +{"machine/pcvt_ioctl.h", "KBDSTPMAT", 0x80044b03}, +{"machine/pcvt_ioctl.h", "KBDSREPSW", 0x80044b05}, +{"machine/pcvt_ioctl.h", "KBDSLEDS", 0x80044b07}, +{"machine/pcvt_ioctl.h", "KBDSLOCK", 0x80044b09}, +{"machine/pcvt_ioctl.h", "KBDRMKEY", 0x80044b13}, +{"machine/mouse.h", "MOUSE_SETLEVEL", 0x80044d05}, +{"sys/soundcard.h", "SNDCTL_DSP_SETBLKSIZE", 0x80045004}, +{"machine/soundcard.h", "SNDCTL_DSP_SETBLKSIZE", 0x80045004}, +{"pccard/cardinfo.h", "PIOCRWFLAG", 0x80045007}, +{"machine/apm_bios.h", "APMIO_DISPLAY", 0x80045009}, +{"pccard/cardinfo.h", "PIOCSVIR", 0x8004500a}, +{"pccard/cardinfo.h", "PIOCSBEEP", 0x8004500b}, +{"machine/soundcard.h", "SNDCTL_DSP_SETTRIGGER", 0x80045010}, +{"sys/soundcard.h", "SNDCTL_DSP_SETTRIGGER", 0x80045010}, +{"sys/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x80045106}, +{"machine/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x80045106}, +{"sys/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x80045108}, +{"machine/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x80045108}, +{"sys/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x80045109}, +{"machine/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x80045109}, +{"machine/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x8004510d}, +{"sys/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x8004510d}, +{"sys/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x8004510f}, +{"machine/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x8004510f}, +{"machine/gsc.h", "GSC_SRES", 0x80045302}, +{"machine/asc_ioctl.h", "ASC_SRES", 0x80045302}, +{"machine/asc_ioctl.h", "ASC_SWIDTH", 0x80045304}, +{"machine/gsc.h", "GSC_SWIDTH", 0x80045304}, +{"machine/asc_ioctl.h", "ASC_SHEIGHT", 0x80045306}, +{"machine/gsc.h", "GSC_SHEIGHT", 0x80045306}, +{"machine/asc_ioctl.h", "ASC_SBLEN", 0x80045308}, +{"machine/gsc.h", "GSC_SBLEN", 0x80045308}, +{"machine/asc_ioctl.h", "ASC_SBTIME", 0x8004530a}, +{"machine/gsc.h", "GSC_SBTIME", 0x8004530a}, +{"machine/i4b_trace.h", "I4B_TRC_SET", 0x80045401}, +{"sys/ptio.h", "PTIOCSETTIMEOUT", 0x80045402}, +{"machine/i4b_trace.h", "I4B_TRC_RESETA", 0x80045403}, +{"machine/soundcard.h", "SNDCTL_TMR_METRONOME", 0x80045407}, +{"sys/soundcard.h", "SNDCTL_TMR_METRONOME", 0x80045407}, +{"machine/soundcard.h", "SNDCTL_TMR_SELECT", 0x80045408}, +{"sys/soundcard.h", "SNDCTL_TMR_SELECT", 0x80045408}, +{"sys/snoop.h", "SNPSTTY", 0x8004545a}, +{"dev/usb/usb.h", "USB_SETDEBUG", 0x80045502}, +{"dev/usb/usb.h", "USB_SET_IMMED", 0x80045516}, +{"dev/usb/usb.h", "USB_SET_CONFIG", 0x80045565}, +{"dev/usb/usb.h", "USB_SET_SHORT_XFER", 0x80045571}, +{"dev/usb/usb.h", "USB_SET_TIMEOUT", 0x80045572}, +{"dev/usb/usb.h", "USB_SET_CM_OVER_DATA", 0x80045583}, +{"machine/pcvt_ioctl.h", "VGASCREENSAVER", 0x80045670}, +{"machine/pcvt_ioctl.h", "VGASETCOLMS", 0x80045673}, +{"sys/cdio.h", "CDIOCPLAYTRACKS", 0x80046301}, +{"sys/consio.h", "CONS_BLANKTIME", 0x80046304}, +{"sys/chio.h", "CHIOSPICKER", 0x80046305}, +{"sys/consio.h", "CONS_CURSORTYPE", 0x80046307}, +{"sys/chio.h", "CHIOIELEM", 0x80046307}, +{"sys/consio.h", "CONS_BELLTYPE", 0x80046308}, +{"sys/consio.h", "CONS_HISTORY", 0x80046309}, +{"sys/cdio.h", "CDIOCSETPATCH", 0x80046309}, +{"sys/cdio.h", "CDIOCSETVOL", 0x8004630b}, +{"sys/consio.h", "CONS_SAVERMODE", 0x8004630c}, +{"sys/consio.h", "CONS_SAVERSTART", 0x8004630d}, +{"sys/cdrio.h", "CDRIOCWRITESPEED", 0x8004636a}, +{"sys/cdrio.h", "CDRIOCSETBLOCKSIZE", 0x8004636c}, +{"sys/disklabel.h", "DIOCWLABEL", 0x8004646d}, +{"sys/diskslice.h", "DIOCSYNCSLICEINFO", 0x80046470}, +{"sys/filio.h", "FIOSETOWN", 0x8004667c}, +{"sys/filio.h", "FIOASYNC", 0x8004667d}, +{"sys/filio.h", "FIONBIO", 0x8004667e}, +{"sys/mtio.h", "MTIOCSLOCATE", 0x80046d05}, +{"sys/mtio.h", "MTIOCHLOCATE", 0x80046d06}, +{"sys/mtio.h", "MTIOCSETEOTMODEL", 0x80046d08}, +{"machine/lpt.h", "LPT_IRQ", 0x80047001}, +{"netinet/ip_fil.h", "SIOCSETFF", 0x8004723e}, +{"netinet/ip_fil.h", "SIOCFRENB", 0x80047248}, +{"netinet/ip_fil.h", "SIOCFRSYN", 0x80047249}, +{"sys/sockio.h", "SIOCSHIWAT", 0x80047300}, +{"sys/sockio.h", "SIOCSLOWAT", 0x80047302}, +{"machine/spigot.h", "SPIGOT_SETINT", 0x80047305}, +{"sys/sockio.h", "SIOCSPGRP", 0x80047308}, +{"machine/cdk.h", "STL_SETPFLAG", 0x80047351}, +{"sys/ioctl_compat.h", "OTIOCSETD", 0x80047401}, +{"sys/ttycom.h", "TIOCMODS", 0x80047404}, +{"sys/ttycom.h", "TIOCFLUSH", 0x80047410}, +{"sys/ttycom.h", "TIOCSETD", 0x8004741b}, +{"net/if_ppp.h", "PPPIOCSMTU", 0x80047448}, +{"net/slip.h", "SLIOCSUNIT", 0x80047450}, +{"net/if_ppp.h", "PPPIOCSMAXCID", 0x80047451}, +{"net/if_ppp.h", "PPPIOCSMRU", 0x80047452}, +{"net/slip.h", "SLIOCSOUTFILL", 0x80047453}, +{"net/slip.h", "SLIOCSKEEPAL", 0x80047454}, +{"net/if_ppp.h", "PPPIOCSRASYNCMAP", 0x80047454}, +{"sys/ttycom.h", "TIOCSDRAINWAIT", 0x80047457}, +{"net/if_ppp.h", "PPPIOCSASYNCMAP", 0x80047457}, +{"net/if_ppp.h", "PPPIOCSFLAGS", 0x80047459}, +{"net/if_tun.h", "TUNSDEBUG", 0x8004745a}, +{"sys/ttycom.h", "TIOCMSDTRWAIT", 0x8004745b}, +{"net/if_tun.h", "TUNSLMODE", 0x8004745d}, +{"net/if_tun.h", "TUNSIFMODE", 0x8004745e}, +{"net/if_tun.h", "TUNSIFHEAD", 0x80047460}, +{"sys/ttycom.h", "TIOCEXT", 0x80047460}, +{"sys/ttycom.h", "TIOCCONS", 0x80047462}, +{"sys/ttycom.h", "TIOCUCNTL", 0x80047466}, +{"sys/ttycom.h", "TIOCREMOTE", 0x80047469}, +{"sys/ttycom.h", "TIOCMBIC", 0x8004746b}, +{"sys/ttycom.h", "TIOCMBIS", 0x8004746c}, +{"sys/ttycom.h", "TIOCMSET", 0x8004746d}, +{"sys/ttycom.h", "TIOCPKT", 0x80047470}, +{"sys/ttycom.h", "TIOCSPGRP", 0x80047476}, +{"sys/ioctl_compat.h", "TIOCLSET", 0x8004747d}, +{"sys/ioctl_compat.h", "TIOCLBIC", 0x8004747e}, +{"sys/ioctl_compat.h", "TIOCLBIS", 0x8004747f}, +{"machine/ioctl_meteor.h", "METEORCAPTUR", 0x80047801}, +{"machine/ioctl_meteor.h", "METEORSFMT", 0x80047807}, +{"machine/ioctl_meteor.h", "METEORSINPUT", 0x80047808}, +{"machine/ioctl_meteor.h", "METEORSSIGNAL", 0x8004780c}, +{"machine/ioctl_bt848.h", "TVTUNER_SETCHNL", 0x80047820}, +{"machine/ioctl_bt848.h", "TVTUNER_SETTYPE", 0x80047821}, +{"machine/ioctl_bt848.h", "TVTUNER_SETFREQ", 0x80047823}, +{"machine/ioctl_bt848.h", "BT848_SHUE", 0x80047825}, +{"machine/ioctl_bt848.h", "BT848_SBRIG", 0x80047826}, +{"machine/ioctl_bt848.h", "BT848_SCSAT", 0x80047827}, +{"machine/ioctl_bt848.h", "BT848_SCONT", 0x80047828}, +{"machine/ioctl_bt848.h", "BT848_SVSAT", 0x80047829}, +{"machine/ioctl_bt848.h", "BT848_SUSAT", 0x8004782a}, +{"machine/ioctl_bt848.h", "BT848_SAUDIO", 0x8004782e}, +{"machine/ioctl_bt848.h", "BT848_SBTSC", 0x80047830}, +{"machine/ioctl_bt848.h", "TVTUNER_SETAFC", 0x80047835}, +{"machine/ioctl_bt848.h", "BT848_SLNOTCH", 0x80047837}, +{"machine/ioctl_bt848.h", "RADIO_SETMODE", 0x8004783a}, +{"machine/ioctl_bt848.h", "RADIO_SETFREQ", 0x8004783b}, +{"machine/ioctl_bt848.h", "METEORSACTPIXFMT", 0x80047840}, +{"machine/ioctl_bt848.h", "BT848SFMT", 0x80047843}, +{"machine/ioctl_bt848.h", "BT848SCBUF", 0x80047844}, +{"machine/ioctl_bt848.h", "BT848_GPIO_SET_EN", 0x80047848}, +{"machine/ioctl_bt848.h", "BT848_GPIO_SET_DATA", 0x8004784a}, +{"sys/chio.h", "CHIOPOSITION", 0x80066303}, +{"sys/cdio.h", "CDIOCPLAYMSF", 0x80066319}, +{"sys/ioctl_compat.h", "TIOCSETP", 0x80067409}, +{"sys/ioctl_compat.h", "TIOCSETN", 0x8006740a}, +{"sys/ioctl_compat.h", "TIOCSETC", 0x80067411}, +{"sys/ioctl_compat.h", "TIOCSLTC", 0x80067475}, +{"machine/ioctl_meteor.h", "METEORCAPFRM", 0x80067802}, +{"machine/i4b_ioctl.h", "I4B_DISCONNECT_REQ", 0x80083403}, +{"machine/i4b_ioctl.h", "I4B_PROT_IND", 0x8008340a}, +{"machine/perfmon.h", "PMIOSETUP", 0x80083501}, +{"net/bpf.h", "BIOCSETF", 0x80084267}, +{"net/bpf.h", "BIOCSRTIMEOUT", 0x8008426d}, +{"sys/fbio.h", "FBIO_SETDISPSTART", 0x8008466e}, +{"sys/kbio.h", "KDSETREPEAT", 0x80084b66}, +{"pccard/cardinfo.h", "PIOCSPOW", 0x80085009}, +{"sys/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x80085112}, +{"machine/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x80085112}, +{"machine/speaker.h", "SPKRTONE", 0x80085301}, +{"sys/wormio.h", "WORMIOCPREPDISK", 0x80085714}, +{"sys/wormio.h", "WORMIOCFIXATION", 0x80085716}, +{"sys/cdio.h", "CDIOCPLAYBLOCKS", 0x80086302}, +{"sys/disklabel.h", "DIOCGPART", 0x80086468}, +{"sys/mtio.h", "MTIOCTOP", 0x80086d01}, +{"net/if_ppp.h", "PPPIOCSACTIVE", 0x80087446}, +{"net/if_ppp.h", "PPPIOCSPASS", 0x80087447}, +{"net/if_ppp.h", "PPPIOCSNPMODE", 0x8008744b}, +{"net/if_tun.h", "TUNSIFINFO", 0x8008745b}, +{"sys/ttycom.h", "TIOCSWINSZ", 0x80087467}, +{"machine/pcvt_ioctl.h", "CONSOLE_X_BELL", 0x8008747b}, +{"sys/consio.h", "VT_SETMODE", 0x80087602}, +{"machine/pcvt_ioctl.h", "VT_SETMODE", 0x80087602}, +{"sys/chio.h", "CHIOMOVE", 0x800a6301}, +{"sys/timepps.h", "PPS_IOC_KCBIND", 0x800c3107}, +{"machine/i4b_ioctl.h", "I4B_UPDOWN_IND", 0x800c3407}, +{"machine/i4b_ioctl.h", "I4B_CTRL_DOWNLOAD", 0x800c3464}, +{"sys/consio.h", "KDRASTER", 0x800c4b64}, +{"machine/pcvt_ioctl.h", "VGACURSOR", 0x800c5664}, +{"sys/chio.h", "CHIOGSTATUS", 0x800c6308}, +{"sys/cdrio.h", "CDRIOCOPENTRACK", 0x800c6368}, +{"sys/kbio.h", "PIO_KEYMAPENT", 0x800c6b0b}, +{"sys/memrange.h", "MEMRANGE_SET", 0x800c6d33}, +{"net/if_ppp.h", "PPPIOCSCOMPRESS", 0x800c744d}, +{"machine/ioctl_meteor.h", "METEORSETGEO", 0x800c7803}, +{"sys/chio.h", "CHIOEXCHANGE", 0x800e6302}, +{"machine/i4b_ioctl.h", "I4B_DIALOUT_RESP", 0x80103405}, +{"machine/i4b_debug.h", "I4B_CTL_SET_DEBUG", 0x80104301}, +{"cam/scsi/scsi_targetio.h", "TARGCTLIOFREEUNIT", 0x80104308}, +{"netgraph/ng_message.h", "NGIOCSETNAME", 0x80104e29}, +{"pccard/cardinfo.h", "PIOCSIO", 0x80105005}, +{"machine/i4b_trace.h", "I4B_TRC_SETA", 0x80105402}, +{"machine/pcvt_ioctl.h", "VGAWRITEPEL", 0x8010566f}, +{"machine/iic.h", "I2CSTART", 0x80106901}, +{"machine/iic.h", "I2CRSTCARD", 0x80106903}, +{"machine/iic.h", "I2CWRITE", 0x80106904}, +{"machine/iic.h", "I2CREAD", 0x80106905}, +{"machine/ioctl_meteor.h", "METEORSVIDEO", 0x8010780d}, +{"machine/ioctl_bt848.h", "BT848_SCAPAREA", 0x80107845}, +{"machine/i4b_ioctl.h", "I4B_TIMEOUT_UPD", 0x80143406}, +{"machine/soundcard.h", "SNDCTL_COPR_WDATA", 0x80144304}, +{"sys/soundcard.h", "SNDCTL_COPR_WDATA", 0x80144304}, +{"sys/soundcard.h", "SNDCTL_COPR_WCODE", 0x80144305}, +{"machine/soundcard.h", "SNDCTL_COPR_WCODE", 0x80144305}, +{"sys/fbio.h", "FBIOPUTCMAP", 0x80144603}, +{"sys/fbio.h", "FBIOGETCMAP", 0x80144604}, +{"machine/pcvt_ioctl.h", "KBDMOUSESET", 0x80144b1a}, +{"pccard/cardinfo.h", "PIOCSMEM", 0x80145003}, +{"machine/pcvt_ioctl.h", "VGASETFONTATTR", 0x80145666}, +{"machine/smb.h", "SMB_QUICK_WRITE", 0x80146901}, +{"machine/smb.h", "SMB_QUICK_READ", 0x80146902}, +{"machine/smb.h", "SMB_SENDB", 0x80146903}, +{"machine/smb.h", "SMB_RECVB", 0x80146904}, +{"machine/smb.h", "SMB_WRITEB", 0x80146905}, +{"machine/smb.h", "SMB_WRITEW", 0x80146906}, +{"machine/smb.h", "SMB_READB", 0x80146907}, +{"machine/smb.h", "SMB_READW", 0x80146908}, +{"machine/smb.h", "SMB_PCALL", 0x80146909}, +{"machine/smb.h", "SMB_BWRITE", 0x8014690a}, +{"machine/smb.h", "SMB_BREAD", 0x8014690b}, +{"machine/ioctl_meteor.h", "METEORSCOUNT", 0x8014780a}, +{"machine/i4b_ioctl.h", "I4B_ACTIVE_DIAGNOSTIC", 0x80183466}, +{"netatm/atm_ioctl.h", "AIOCCFG", 0x80184180}, +{"sys/ccdvar.h", "CCDIOCCLR", 0x80184611}, +{"sys/fbio.h", "FBIO_GETPALETTE", 0x80184671}, +{"sys/fbio.h", "FBIO_SETPALETTE", 0x80184672}, +{"sys/consio.h", "CONS_SSAVER", 0x80186305}, +{"machine/mouse.h", "MOUSE_SETMODE", 0x801c4d03}, +{"sys/timepps.h", "PPS_IOC_SETPARAMS", 0x80203103}, +{"machine/i4b_ioctl.h", "I4B_CONNECT_RESP", 0x80203402}, +{"net/bpf.h", "BIOCSETIF", 0x8020426c}, +{"machine/i4b_debug.h", "I4B_CTL_CLR_HSCXSTAT", 0x80204303}, +{"sys/sockio.h", "SIOCSIFADDR", 0x8020690c}, +{"sys/sockio.h", "SIOCSIFDSTADDR", 0x8020690e}, +{"sys/sockio.h", "SIOCSIFFLAGS", 0x80206910}, +{"sys/sockio.h", "SIOCSIFBRDADDR", 0x80206913}, +{"sys/sockio.h", "SIOCSIFNETMASK", 0x80206916}, +{"sys/sockio.h", "SIOCSIFMETRIC", 0x80206918}, +{"sys/sockio.h", "SIOCDIFADDR", 0x80206919}, +{"sys/sockio.h", "SIOCADDMULTI", 0x80206931}, +{"sys/sockio.h", "SIOCDELMULTI", 0x80206932}, +{"sys/sockio.h", "SIOCSIFMTU", 0x80206934}, +{"sys/sockio.h", "SIOCSIFPHYS", 0x80206936}, +{"sys/sockio.h", "SIOCSIFGENERIC", 0x80206939}, +{"machine/if_wl_wavelan.h", "SIOCDWLCACHE", 0x80206940}, +{"machine/if_wl_wavelan.h", "SIOCSWLTHR", 0x80206941}, +{"netatalk/phase2.h", "SIOCPHASE1", 0x80206964}, +{"netatalk/phase2.h", "SIOCPHASE2", 0x80206965}, +{"net/if_ppp.h", "PPPIOCSXASYNCMAP", 0x8020744f}, +{"netatm/atm_ioctl.h", "AIOCDEL", 0x80244182}, +{"sys/wormio.h", "WORMIOCWRITESESSION", 0x80245720}, +{"sys/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x80285107}, +{"machine/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x80285107}, +{"sys/wormio.h", "WORMIOCPREPTRACK", 0x80285715}, +{"machine/i4b_rbch_ioctl.h", "I4B_RBCH_DIALOUT", 0x80295201}, +{"sys/chio.h", "CHIOSETVOLTAG", 0x802a6309}, +{"sys/fbio.h", "FBIOSCURSOR", 0x802c4618}, +{"machine/ioctl_fd.h", "FD_STYPE", 0x802c463f}, +{"machine/pcvt_ioctl.h", "VGALOADCHAR", 0x802c5665}, +{"sys/ttycom.h", "TIOCSETA", 0x802c7414}, +{"sys/ttycom.h", "TIOCSETAW", 0x802c7415}, +{"sys/ttycom.h", "TIOCSETAF", 0x802c7416}, +{"machine/pcvt_ioctl.h", "VGASETSCREEN", 0x80305668}, +{"sys/sockio.h", "SIOCADDRT", 0x8030720a}, +{"sys/sockio.h", "SIOCDELRT", 0x8030720b}, +{"cam/scsi/scsi_targetio.h", "TARGIOCSETISTATE", 0x80344305}, +{"netatm/atm_ioctl.h", "AIOCADD", 0x803c4181}, +{"machine/mouse.h", "MOUSE_SETVARS", 0x80404d07}, +{"sys/sockio.h", "SIOCAIFADDR", 0x8040691a}, +{"sys/sockio.h", "SIOCSIFPHYADDR", 0x80406946}, +{"netinet6/in6_var.h", "SIOCSIFPREFIX_IN6", 0x80406964}, +{"netinet6/in6_var.h", "SIOCDIFPREFIX_IN6", 0x80406966}, +{"netatm/atm_ioctl.h", "AIOCSET", 0x80484184}, +{"machine/pcvt_ioctl.h", "KBDSCKEY", 0x80484b11}, +{"netinet6/in6_var.h", "SIOCAIFPREFIX_IN6", 0x80606967}, +{"netinet6/in6_var.h", "SIOCCIFPREFIX_IN6", 0x80606968}, +{"netinet6/in6_var.h", "SIOCSGIFPREFIX_IN6", 0x80606969}, +{"sys/consio.h", "CONS_SETTERM", 0x80686371}, +{"netinet/ip_nat.h", "SIOCADNAT", 0x80707250}, +{"netinet/ip_nat.h", "SIOCRMNAT", 0x80707251}, +{"netinet6/in6_var.h", "SIOCAIFADDR_IN6", 0x8078691a}, +{"netinet6/in6_var.h", "SIOCSIFPHYADDR_IN6", 0x80786946}, +{"machine/i4b_ioctl.h", "I4B_CONNECT_REQ", 0x80843401}, +{"machine/cronyx.h", "CXIOCSETMODE", 0x80847802}, +{"sys/xrpuio.h", "XRPU_IOC_TIMECOUNTING", 0x80a03601}, +{"machine/ioctl_fd.h", "FD_FORM", 0x80a4463d}, +{"netinet/ip_fil.h", "SIOCADAFR", 0x80c0723c}, +{"netinet/ip_fil.h", "SIOCRMAFR", 0x80c0723d}, +{"netinet/ip_fil.h", "SIOCADIFR", 0x80c07243}, +{"netinet/ip_fil.h", "SIOCRMIFR", 0x80c07244}, +{"netinet/ip_fil.h", "SIOCINAFR", 0x80c07246}, +{"netinet/ip_fil.h", "SIOCINIFR", 0x80c07247}, +{"sys/consio.h", "PIO_SCRNMAP", 0x81006b03}, +{"machine/ioctl_ctx.h", "CTX_SET_LUT", 0x81007805}, +{"sys/disklabel.h", "DIOCSDINFO", 0x81146466}, +{"sys/disklabel.h", "DIOCWDINFO", 0x81146467}, +{"sys/sockio.h", "SIOCALIFADDR", 0x8118691b}, +{"sys/sockio.h", "SIOCDLIFADDR", 0x8118691d}, +{"netinet6/in6_var.h", "SIOCSIFADDR_IN6", 0x8120690c}, +{"netinet6/in6_var.h", "SIOCSIFDSTADDR_IN6", 0x8120690e}, +{"netinet6/in6_var.h", "SIOCSIFNETMASK_IN6", 0x81206916}, +{"netinet6/in6_var.h", "SIOCDIFADDR_IN6", 0x81206919}, +{"sys/kbio.h", "PIO_DEADKEYMAP", 0x862a6b09}, +{"machine/ioctl_bt848.h", "BT848SCLIP", 0x86407842}, +{"sys/consio.h", "PIO_FONT8x8", 0x88006340}, +{"sys/kbio.h", "PIO_KEYMAP", 0x8a026b07}, +{"sys/consio.h", "PIO_FONT8x14", 0x8e006342}, +{"sys/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x8fa44308}, +{"machine/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x8fa44308}, +{"sys/consio.h", "PIO_FONT8x16", 0x90006344}, +{"pccard/cardinfo.h", "PIOCGREG", 0xc0025064}, +{"machine/i4b_ioctl.h", "I4B_CDID_REQ", 0xc0043400}, +{"machine/soundcard.h", "AIOGMIX", 0xc004410d}, +{"sys/soundcard.h", "AIOGMIX", 0xc004410d}, +{"machine/soundcard.h", "AIOSMIX", 0xc004410e}, +{"sys/soundcard.h", "AIOSMIX", 0xc004410e}, +{"machine/soundcard.h", "AIOSTOP", 0xc004410f}, +{"sys/soundcard.h", "AIOSTOP", 0xc004410f}, +{"net/bpf.h", "BIOCSBLEN", 0xc0044266}, +{"sys/vnioctl.h", "VNIOCGSET", 0xc0044602}, +{"sys/vnioctl.h", "VNIOCGCLEAR", 0xc0044603}, +{"sys/vnioctl.h", "VNIOCUSET", 0xc0044604}, +{"sys/vnioctl.h", "VNIOCUCLEAR", 0xc0044605}, +{"machine/soundcard.h", "SNDCTL_DSP_SPEED", 0xc0045002}, +{"sys/soundcard.h", "SNDCTL_DSP_SPEED", 0xc0045002}, +{"sys/soundcard.h", "SNDCTL_DSP_STEREO", 0xc0045003}, +{"machine/soundcard.h", "SNDCTL_DSP_STEREO", 0xc0045003}, +{"machine/soundcard.h", "SNDCTL_DSP_SETFMT", 0xc0045005}, +{"sys/soundcard.h", "SNDCTL_DSP_SETFMT", 0xc0045005}, +{"machine/soundcard.h", "SOUND_PCM_WRITE_CHANNELS", 0xc0045006}, +{"sys/soundcard.h", "SOUND_PCM_WRITE_CHANNELS", 0xc0045006}, +{"machine/soundcard.h", "SOUND_PCM_WRITE_FILTER", 0xc0045007}, +{"sys/soundcard.h", "SOUND_PCM_WRITE_FILTER", 0xc0045007}, +{"pccard/cardinfo.h", "PIOCRWMEM", 0xc0045008}, +{"sys/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0xc0045009}, +{"machine/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0xc0045009}, +{"machine/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0xc004500a}, +{"sys/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0xc004500a}, +{"machine/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0xc0045103}, +{"sys/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0xc0045103}, +{"sys/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0xc004510e}, +{"machine/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0xc004510e}, +{"machine/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0xc0045401}, +{"sys/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0xc0045401}, +{"machine/soundcard.h", "SNDCTL_TMR_TEMPO", 0xc0045405}, +{"sys/soundcard.h", "SNDCTL_TMR_TEMPO", 0xc0045405}, +{"sys/soundcard.h", "SNDCTL_TMR_SOURCE", 0xc0045406}, +{"machine/soundcard.h", "SNDCTL_TMR_SOURCE", 0xc0045406}, +{"net/if_atm.h", "SIOCRAWATM", 0xc004617a}, +{"sys/soundcard.h", "SNDCTL_MIDI_PRETIME", 0xc0046d00}, +{"machine/soundcard.h", "SNDCTL_MIDI_PRETIME", 0xc0046d00}, +{"machine/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0xc0046d01}, +{"sys/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0xc0046d01}, +{"netinet/ip_fil.h", "SIOCIPFFL", 0xc0047241}, +{"netinet/ip_nat.h", "SIOCFLNAT", 0xc0047256}, +{"netinet/ip_nat.h", "SIOCCNATL", 0xc0047257}, +{"machine/ioctl_bt848.h", "BT848_I2CWR", 0xc0047839}, +{"machine/perfmon.h", "PMIOGET", 0xc0083507}, +{"sys/soundcard.h", "AIOSSIZE", 0xc008410b}, +{"machine/soundcard.h", "AIOSSIZE", 0xc008410b}, +{"sys/soundcard.h", "AIOSYNC", 0xc008410f}, +{"machine/soundcard.h", "AIOSYNC", 0xc008410f}, +{"sys/vnioctl.h", "VNIOCATTACH", 0xc0084600}, +{"sys/vnioctl.h", "VNIOCDETACH", 0xc0084601}, +{"net/if_atm.h", "SIOCATMENA", 0xc008617b}, +{"net/if_atm.h", "SIOCATMDIS", 0xc008617c}, +{"sys/cdio.h", "CDIOREADTOCENTRYS", 0xc0086305}, +{"sys/sockio.h", "OSIOCGIFCONF", 0xc0086914}, +{"sys/sockio.h", "SIOCGIFCONF", 0xc0086924}, +{"net/if_ppp.h", "PPPIOCGNPMODE", 0xc008744c}, +{"machine/perfmon.h", "PMIOREAD", 0xc00c3504}, +{"dev/usb/usb.h", "USB_GET_ALTINTERFACE", 0xc00c5566}, +{"dev/usb/usb.h", "USB_SET_ALTINTERFACE", 0xc00c5567}, +{"dev/usb/usb.h", "USB_GET_NO_ALT", 0xc00c5568}, +{"dev/usb/usb.h", "USB_GET_FULL_DESC", 0xc00c556d}, +{"sys/cdio.h", "CDIOCREADSUBCHANNEL", 0xc00c6303}, +{"sys/cdio.h", "CDIOREADTOCENTRY", 0xc00c6306}, +{"sys/kbio.h", "GIO_KEYMAPENT", 0xc00c6b0a}, +{"sys/memrange.h", "MEMRANGE_GET", 0xc00c6d32}, +{"cam/scsi/scsi_targetio.h", "TARGCTLIOALLOCUNIT", 0xc0104307}, +{"pccard/cardinfo.h", "PIOCGIO", 0xc0105004}, +{"dev/usb/usb.h", "USB_GET_CONFIG_DESC", 0xc010556a}, +{"machine/pcvt_ioctl.h", "VGAREADPEL", 0xc010566e}, +{"sys/cdio.h", "CDIOCREADAUDIO", 0xc010631f}, +{"machine/soundcard.h", "AIOSFMT", 0xc010660c}, +{"sys/soundcard.h", "AIOSFMT", 0xc010660c}, +{"sys/pciio.h", "PCIOCREAD", 0xc0107002}, +{"sys/pciio.h", "PCIOCWRITE", 0xc0107003}, +{"sys/pciio.h", "PCIOCATTACHED", 0xc0107004}, +{"machine/i4b_ioctl.h", "I4B_CTRL_INFO_REQ", 0xc0143404}, +{"sys/soundcard.h", "SNDCTL_COPR_RDATA", 0xc0144302}, +{"machine/soundcard.h", "SNDCTL_COPR_RDATA", 0xc0144302}, +{"machine/soundcard.h", "SNDCTL_COPR_RCODE", 0xc0144303}, +{"sys/soundcard.h", "SNDCTL_COPR_RCODE", 0xc0144303}, +{"sys/soundcard.h", "SNDCTL_COPR_RUN", 0xc0144306}, +{"machine/soundcard.h", "SNDCTL_COPR_RUN", 0xc0144306}, +{"machine/soundcard.h", "SNDCTL_COPR_HALT", 0xc0144307}, +{"sys/soundcard.h", "SNDCTL_COPR_HALT", 0xc0144307}, +{"pccard/cardinfo.h", "PIOCGMEM", 0xc0145002}, +{"machine/pcvt_ioctl.h", "VGAGETFONTATTR", 0xc0145667}, +{"sys/wormio.h", "WORMIOCFIRSTWRITABLEADDR", 0xc0145721}, +{"sys/consio.h", "CONS_MOUSECTL", 0xc014630a}, +{"sys/consio.h", "CONS_GETINFO", 0xc0146349}, +{"sys/kbio.h", "GETFKEY", 0xc0146b00}, +{"sys/kbio.h", "SETFKEY", 0xc0146b01}, +{"sys/sockio.h", "SIOCGETVIFCNT", 0xc014720f}, +{"sys/sockio.h", "SIOCGETSGCNT", 0xc0147210}, +{"machine/ioctl_bt848.h", "TVTUNER_GETCHNLSET", 0xc0147846}, +{"sys/ccdvar.h", "CCDIOCSET", 0xc0184610}, +{"machine/apm_bios.h", "APMIO_BIOS", 0xc018500a}, +{"dev/usb/usb.h", "USB_REQUEST", 0xc0185501}, +{"dev/usb/usb.h", "USB_GET_INTERFACE_DESC", 0xc018556b}, +{"dev/usb/usb.h", "USB_GET_ENDPOINT_DESC", 0xc018556c}, +{"dev/usb/usb.h", "USB_DO_REQUEST", 0xc018556f}, +{"machine/pcvt_ioctl.h", "VGAPCVTID", 0xc0185671}, +{"sys/consio.h", "CONS_GSAVER", 0xc0186306}, +{"sys/dvdio.h", "DVDIOCREPORTKEY", 0xc01863c8}, +{"sys/dvdio.h", "DVDIOCSENDKEY", 0xc01863c9}, +{"netinet/ip_nat.h", "SIOCGNATL", 0xc0187253}, +{"machine/soundcard.h", "AIOGCAP", 0xc01c410f}, +{"sys/soundcard.h", "AIOGCAP", 0xc01c410f}, +{"machine/ioctl_bt848.h", "METEORGSUPPIXFMT", 0xc01c7841}, +{"netatm/atm_ioctl.h", "AIOCINFO", 0xc0204185}, +{"machine/i4b_debug.h", "I4B_CTL_GET_HSCXSTAT", 0xc0204302}, +{"sys/sockio.h", "OSIOCGIFADDR", 0xc020690d}, +{"sys/sockio.h", "OSIOCGIFDSTADDR", 0xc020690f}, +{"sys/sockio.h", "SIOCGIFFLAGS", 0xc0206911}, +{"sys/sockio.h", "OSIOCGIFBRDADDR", 0xc0206912}, +{"sys/sockio.h", "OSIOCGIFNETMASK", 0xc0206915}, +{"sys/sockio.h", "SIOCGIFMETRIC", 0xc0206917}, +{"sys/sockio.h", "SIOCGIFADDR", 0xc0206921}, +{"sys/sockio.h", "SIOCGIFDSTADDR", 0xc0206922}, +{"sys/sockio.h", "SIOCGIFBRDADDR", 0xc0206923}, +{"sys/sockio.h", "SIOCGIFNETMASK", 0xc0206925}, +{"sys/sockio.h", "SIOCGIFMTU", 0xc0206933}, +{"sys/sockio.h", "SIOCGIFPHYS", 0xc0206935}, +{"sys/sockio.h", "SIOCSIFMEDIA", 0xc0206937}, +{"sys/sockio.h", "SIOCGIFGENERIC", 0xc020693a}, +{"machine/if_wl_wavelan.h", "SIOCGWLCNWID", 0xc020693c}, +{"machine/if_wl_wavelan.h", "SIOCSWLCNWID", 0xc020693d}, +{"machine/if_wl_wavelan.h", "SIOCGWLPSA", 0xc020693e}, +{"machine/if_wl_wavelan.h", "SIOCSWLPSA", 0xc020693f}, +{"machine/if_wl_wavelan.h", "SIOCGWLEEPROM", 0xc0206942}, +{"machine/if_wl_wavelan.h", "SIOCGWLCACHE", 0xc0206943}, +{"machine/if_wl_wavelan.h", "SIOCGWLCITEM", 0xc0206944}, +{"sys/sockio.h", "SIOCGIFPSRCADDR", 0xc0206947}, +{"sys/sockio.h", "SIOCGIFPDSTADDR", 0xc0206948}, +{"sys/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0xc0216d02}, +{"machine/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0xc0216d02}, +{"sys/pciio.h", "PCIOCGETCONF", 0xc0247001}, +{"netinet6/in6_var.h", "SIOCGETMIFCNT_IN6", 0xc024756b}, +{"machine/pcvt_ioctl.h", "VGAPCVTINFO", 0xc0285672}, +{"sys/sockio.h", "SIOCGIFMEDIA", 0xc0286938}, +{"machine/cronyx.h", "CXIOCGETSTAT", 0xc0287803}, +{"sys/fbio.h", "FBIOGCURSOR", 0xc02c4619}, +{"netinet6/in6_var.h", "SIOCGIFINFO_IN6", 0xc02c694c}, +{"sys/timepps.h", "PPS_IOC_FETCH", 0xc0303106}, +{"machine/pcvt_ioctl.h", "VGAGETSCREEN", 0xc0305669}, +{"netinet6/in6_var.h", "SIOCGNBRINFO_IN6", 0xc030694e}, +{"netinet/ip_fil.h", "SIOCATHST", 0xc030724e}, +{"cam/scsi/scsi_targetio.h", "TARGIOCGETISTATE", 0xc0344306}, +{"netinet/ip_fil.h", "SIOCAUTHW", 0xc038724c}, +{"netinet/ip_fil.h", "SIOCAUTHR", 0xc038724d}, +{"netinet6/in6_var.h", "SIOCGIFPREFIX_IN6", 0xc0406965}, +{"machine/mouse.h", "MOUSE_READSTATE", 0xc0444d08}, +{"machine/mouse.h", "MOUSE_READDATA", 0xc0444d09}, +{"machine/pcvt_ioctl.h", "KBDGCKEY", 0xc0484b10}, +{"machine/pcvt_ioctl.h", "KBDGOKEY", 0xc0484b12}, +{"net/if_ppp.h", "SIOCGPPPCSTATS", 0xc048697a}, +{"net/if_ppp.h", "SIOCGPPPSTATS", 0xc048697b}, +{"netinet6/in6_var.h", "SIOCGETSGCNT_IN6", 0xc050756a}, +{"sys/consio.h", "CONS_GETTERM", 0xc0686370}, +{"machine/i4b_debug.h", "I4B_CTL_GET_LAPDSTAT", 0xc0704304}, +{"machine/soundcard.h", "SNDCTL_MIDI_INFO", 0xc074510c}, +{"sys/soundcard.h", "SNDCTL_MIDI_INFO", 0xc074510c}, +{"machine/comstats.h", "COM_GETPORTSTATS", 0xc080631e}, +{"machine/comstats.h", "COM_CLRPORTSTATS", 0xc080631f}, +{"machine/pcaudioio.h", "AUDIO_SETINFO", 0xc0844102}, +{"machine/cronyx.h", "CXIOCGETMODE", 0xc0847801}, +{"machine/soundcard.h", "SNDCTL_SYNTH_INFO", 0xc08c5102}, +{"sys/soundcard.h", "SNDCTL_SYNTH_INFO", 0xc08c5102}, +{"sys/fbio.h", "FBIO_MODEINFO", 0xc09c4667}, +{"sys/fbio.h", "FBIO_FINDMODE", 0xc09c4668}, +{"sys/consio.h", "CONS_MODEINFO", 0xc09c6366}, +{"sys/consio.h", "CONS_FINDMODE", 0xc09c6367}, +{"sys/consio.h", "CONS_ADPINFO", 0xc0a46365}, +{"machine/comstats.h", "COM_GETBRDSTATS", 0xc0a86320}, +{"pccard/cardinfo.h", "PIOCSDRV", 0xc0ac5006}, +{"netinet/ip_fil.h", "SIOCZRLST", 0xc0c0724b}, +{"machine/ioctl_bt848.h", "BT848_WEEPROM", 0xc1047832}, +{"machine/ioctl_bt848.h", "BT848_REEPROM", 0xc1047833}, +{"machine/ioctl_bt848.h", "BT848_SIGNATURE", 0xc1047834}, +{"dev/usb/usb.h", "USB_GET_STRING_DESC", 0xc108556e}, +{"netinet/ip_fil.h", "SIOCFRZST", 0xc10c724a}, +{"sys/sockio.h", "SIOCGLIFADDR", 0xc118691c}, +{"netinet6/in6_var.h", "SIOCGIFADDR_IN6", 0xc1206921}, +{"netinet6/in6_var.h", "SIOCGIFDSTADDR_IN6", 0xc1206922}, +{"netinet6/in6_var.h", "SIOCGIFNETMASK_IN6", 0xc1206925}, +{"netinet6/in6_var.h", "SIOCGIFPSRCADDR_IN6", 0xc1206947}, +{"netinet6/in6_var.h", "SIOCGIFPDSTADDR_IN6", 0xc1206948}, +{"netinet6/in6_var.h", "SIOCGIFAFLAG_IN6", 0xc1206949}, +{"netinet6/in6_var.h", "SIOCSNDFLUSH_IN6", 0xc120694d}, +{"netinet6/in6_var.h", "SIOCSPFXFLUSH_IN6", 0xc120694f}, +{"netinet6/in6_var.h", "SIOCSRTRFLUSH_IN6", 0xc1206950}, +{"netinet6/in6_var.h", "SIOCGIFALIFETIME_IN6", 0xc1206951}, +{"netinet6/in6_var.h", "SIOCSIFALIFETIME_IN6", 0xc1206952}, +{"netinet6/in6_var.h", "SIOCGIFSTAT_IN6", 0xc1206953}, +{"netinet6/in6_var.h", "SIOCGIFSTAT_ICMP6", 0xc1206954}, +{"netinet6/in6_var.h", "SIOCGDRLST_IN6", 0xc128694a}, +{"dev/usb/usb.h", "USB_DEVICEINFO", 0xc1585504}, +{"cam/scsi/scsi_pass.h", "CAMIOCOMMAND", 0xc2601402}, +{"cam/scsi/scsi_pass.h", "CAMGETPASSTHRU", 0xc2601403}, +{"cam/scsi/scsi_targetio.h", "TARGIOCCOMMAND", 0xc2604304}, +{"sys/sockio.h", "SIOCGIFSTATUS", 0xc331693b}, +{"dev/usb/usb.h", "USB_GET_REPORT", 0xc4045517}, +{"netinet6/in6_var.h", "SIOCGPRLST_IN6", 0xc7b8694b}, +{"sys/dvdio.h", "DVDIOCREADSTRUCTURE", 0xc80c63ca}, +{"machine/soundcard.h", "SNDCTL_COPR_LOAD", 0xcfb04301}, +{"sys/soundcard.h", "SNDCTL_COPR_LOAD", 0xcfb04301}, +{"machine/soundcard.h", "SNDCTL_PMGR_IFACE", 0xcfb85001}, +{"sys/soundcard.h", "SNDCTL_PMGR_IFACE", 0xcfb85001}, +{"sys/soundcard.h", "SNDCTL_PMGR_ACCESS", 0xcfb85110}, +{"machine/soundcard.h", "SNDCTL_PMGR_ACCESS", 0xcfb85110},
diff --git a/strace-4.5.20/freebsd/i386/signalent.h b/strace-4.5.20/freebsd/i386/signalent.h new file mode 100644 index 0000000..2b507e3 --- /dev/null +++ b/strace-4.5.20/freebsd/i386/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-4.5.20/freebsd/i386/syscall.h b/strace-4.5.20/freebsd/i386/syscall.h new file mode 100644 index 0000000..9b60900 --- /dev/null +++ b/strace-4.5.20/freebsd/i386/syscall.h
@@ -0,0 +1,274 @@ +/* + * Automatically generated by ./../syscalls.pl on Thu Mar 8 18:14:07 2001 + */ + +#define sys_syscall printargs +int sys_exit(); +int sys_fork(); +int sys_read(); +int sys_write(); +int sys_open(); +int sys_close(); +int sys_wait4(); +int sys_creat(); +int sys_link(); +int sys_unlink(); +int sys_chdir(); +int sys_fchdir(); +int sys_mknod(); +int sys_chmod(); +int sys_chown(); +#define sys_break printargs +#define sys_getfsstat printargs +int sys_lseek(); +int sys_getpid(); +#define sys_mount printargs +#define sys_unmount printargs +#define sys_setuid printargs +int sys_getuid(); +#define sys_geteuid printargs +int sys_ptrace(); +int sys_recvmsg(); +int sys_sendmsg(); +int sys_recvfrom(); +int sys_accept(); +int sys_getpeername(); +int sys_getsockname(); +int sys_access(); +int sys_chflags(); +int sys_fchflags(); +#define sys_sync printargs +int sys_kill(); +int sys_stat(); +#define sys_getppid printargs +int sys_lstat(); +int sys_dup(); +int sys_pipe(); +#define sys_getegid printargs +#define sys_profil printargs +#define sys_ktrace printargs +int sys_sigaction(); +int sys_getgid(); +int sys_sigprocmask(); +#define sys_getlogin printargs +#define sys_setlogin printargs +#define sys_acct printargs +int sys_sigpending(); +int sys_sigaltstack(); +int sys_ioctl(); +#define sys_reboot printargs +#define sys_revoke printargs +int sys_symlink(); +int sys_readlink(); +int sys_execve(); +int sys_umask(); +int sys_chroot(); +int sys_fstat(); +#define sys_getkerninfo printargs +int sys_getpagesize(); +int sys_msync(); +int sys_vfork(); +int sys_sbrk(); +#define sys_sstk printargs +int sys_mmap(); +#define sys_vadvise printargs +int sys_munmap(); +int sys_mprotect(); +#define sys_madvise printargs +int sys_mincore(); +int sys_getgroups(); +int sys_setgroups(); +int sys_getpgrp(); +int sys_setpgid(); +int sys_setitimer(); +int sys_wait(); +#define sys_swapon printargs +int sys_getitimer(); +int sys_gethostname(); +int sys_sethostname(); +int sys_getdtablesize(); +int sys_dup2(); +int sys_fcntl(); +int sys_select(); +int sys_fsync(); +int sys_setpriority(); +int sys_socket(); +int sys_connect(); +int sys_accept(); +int sys_getpriority(); +int sys_send(); +int sys_recv(); +#define sys_sigreturn printargs +int sys_bind(); +int sys_setsockopt(); +int sys_listen(); +int sys_sigvec(); +int sys_sigblock(); +int sys_sigsetmask(); +int sys_sigsuspend(); +int sys_sigstack(); +int sys_recvmsg(); +int sys_sendmsg(); +int sys_gettimeofday(); +int sys_getrusage(); +int sys_getsockopt(); +int sys_readv(); +int sys_writev(); +int sys_settimeofday(); +int sys_fchown(); +int sys_fchmod(); +int sys_recvfrom(); +int sys_setreuid(); +int sys_setregid(); +int sys_rename(); +int sys_truncate(); +int sys_ftruncate(); +int sys_flock(); +int sys_mkfifo(); +int sys_sendto(); +int sys_shutdown(); +int sys_socketpair(); +int sys_mkdir(); +int sys_rmdir(); +int sys_utimes(); +int sys_adjtime(); +int sys_getpeername(); +int sys_gethostid(); +#define sys_sethostid printargs +int sys_getrlimit(); +int sys_setrlimit(); +int sys_killpg(); +int sys_setsid(); +int sys_quotactl(); +#define sys_quota printargs +int sys_getsockname(); +#define sys_nfssvc printargs +int sys_getdirentries(); +int sys_statfs(); +int sys_fstatfs(); +#define sys_getfh printargs +int sys_getdomainname(); +int sys_setdomainname(); +int sys_uname(); +#define sys_sysarch printargs +#define sys_rtprio printargs +#define sys_semsys printargs +#define sys_msgsys printargs +#define sys_shmsys printargs +int sys_pread(); +int sys_pwrite(); +#define sys_ntp_adjtime printargs +#define sys_setgid printargs +#define sys_setegid printargs +#define sys_seteuid printargs +int sys_stat(); +int sys_fstat(); +int sys_lstat(); +int sys_pathconf(); +int sys_fpathconf(); +int sys_getrlimit(); +int sys_setrlimit(); +int sys_getdirentries(); +int sys_mmap(); +#define sys___syscall printargs +int sys_lseek(); +int sys_truncate(); +int sys_ftruncate(); +int sys___sysctl(); +#define sys_mlock printargs +#define sys_munlock printargs +#define sys_undelete printargs +#define sys_futimes printargs +int sys_getpgid(); +int sys_poll(); +#define sys___semctl printargs +int sys_semget(); +int sys_semop(); +int sys_msgctl(); +int sys_msgget(); +int sys_msgsnd(); +int sys_msgrcv(); +int sys_shmat(); +int sys_shmctl(); +int sys_shmdt(); +int sys_shmget(); +#define sys_clock_gettime printargs +#define sys_clock_settime printargs +#define sys_clock_getres printargs +#define sys_nanosleep printargs +#define sys_minherit printargs +#define sys_rfork printargs +#define sys_openbsd_poll printargs +#define sys_issetugid printargs +#define sys_lchown printargs +int sys_getdents(); +#define sys_lchmod printargs +#define sys_netbsd_lchown printargs +#define sys_lutimes printargs +#define sys_netbsd_msync printargs +#define sys_nstat printargs +#define sys_nfstat printargs +#define sys_nlstat printargs +#define sys_fhstatfs printargs +#define sys_fhopen printargs +#define sys_fhstat printargs +#define sys_modnext printargs +#define sys_modstat printargs +#define sys_modfnext printargs +#define sys_modfind printargs +#define sys_kldload printargs +#define sys_kldunload printargs +#define sys_kldfind printargs +#define sys_kldnext printargs +#define sys_kldstat printargs +#define sys_kldfirstmod printargs +int sys_getsid(); +int sys_setresuid(); +int sys_setresgid(); +#define sys_aio_return printargs +#define sys_aio_suspend printargs +#define sys_aio_cancel printargs +#define sys_aio_error printargs +#define sys_aio_read printargs +#define sys_aio_write printargs +#define sys_lio_listio printargs +#define sys_yield printargs +#define sys_thr_sleep printargs +#define sys_thr_wakeup printargs +#define sys_mlockall printargs +#define sys_munlockall printargs +int sys___getcwd(); +#define sys_sched_setparam printargs +#define sys_sched_getparam printargs +#define sys_sched_setscheduler printargs +#define sys_sched_getscheduler printargs +#define sys_sched_yield printargs +#define sys_sched_get_priority_max printargs +#define sys_sched_get_priority_min printargs +#define sys_sched_rr_get_interval printargs +#define sys_utrace printargs +int sys_sendfile(); +#define sys_kldsym printargs +#define sys_jail printargs +int sys_sigprocmask(); +int sys_sigsuspend(); +int sys_sigaction(); +int sys_sigpending(); +#define sys_sigreturn printargs +#define sys___acl_get_file printargs +#define sys___acl_set_file printargs +#define sys___acl_get_fd printargs +#define sys___acl_set_fd printargs +#define sys___acl_delete_file printargs +#define sys___acl_delete_fd printargs +#define sys___acl_aclcheck_file printargs +#define sys___acl_aclcheck_fd printargs +#define sys_extattrctl printargs +#define sys_extattr_set_file printargs +#define sys_extattr_get_file printargs +#define sys_extattr_delete_file printargs +#define sys_aio_waitcomplete printargs +#define sys_getresuid printargs +#define sys_getresgid printargs +#define sys_kqueue printargs +#define sys_kevent printargs
diff --git a/strace-4.5.20/freebsd/i386/syscallent.h b/strace-4.5.20/freebsd/i386/syscallent.h new file mode 100644 index 0000000..bb6815e --- /dev/null +++ b/strace-4.5.20/freebsd/i386/syscallent.h
@@ -0,0 +1,368 @@ +/* + * Automatically generated by ./../syscalls.pl on Thu Mar 8 18:14:07 2001 + */ + + { 1, 0, sys_syscall, "syscall" }, /* 0 */ + { 1, 0, sys_exit, "exit" }, /* 1 */ + { 1, TP, sys_fork, "fork" }, /* 2 */ + { 3, TD, sys_read, "read" }, /* 3 */ + { 3, TD, sys_write, "write" }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TF, sys_close, "close" }, /* 6 */ + { 4, TP, sys_wait4, "wait4" }, /* 7 */ + { 2, TD|TF, sys_creat, "creat?" }, /* 8 */ + { 2, TF, sys_link, "link" }, /* 9 */ + { 1, TF, sys_unlink, "unlink" }, /* 10 */ + { -1, 0, printargs, "SYS_11" }, /* 11 */ + { 1, TF, sys_chdir, "chdir" }, /* 12 */ + { 1, TF, sys_fchdir, "fchdir" }, /* 13 */ + { 3, TF, sys_mknod, "mknod" }, /* 14 */ + { 2, TF, sys_chmod, "chmod" }, /* 15 */ + { 3, TF, sys_chown, "chown" }, /* 16 */ + { 1, 0, sys_break, "break" }, /* 17 */ + { 3, 0, sys_getfsstat, "getfsstat" }, /* 18 */ + { 3, TD, sys_lseek, "lseek?" }, /* 19 */ + { 1, 0, sys_getpid, "getpid" }, /* 20 */ + { 4, TF, sys_mount, "mount" }, /* 21 */ + { 2, TF, sys_unmount, "unmount" }, /* 22 */ + { 1, 0, sys_setuid, "setuid" }, /* 23 */ + { 1, 0, sys_getuid, "getuid" }, /* 24 */ + { 1, 0, sys_geteuid, "geteuid" }, /* 25 */ + { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ + { 3, TN, sys_recvmsg, "recvmsg" }, /* 27 */ + { 3, TN, sys_sendmsg, "sendmsg" }, /* 28 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 29 */ + { 3, TN, sys_accept, "accept" }, /* 30 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 31 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 32 */ + { 2, TF, sys_access, "access" }, /* 33 */ + { 2, TF, sys_chflags, "chflags" }, /* 34 */ + { 2, TF, sys_fchflags, "fchflags" }, /* 35 */ + { 1, 0, sys_sync, "sync" }, /* 36 */ + { 2, TS, sys_kill, "kill" }, /* 37 */ + { 2, TF, sys_stat, "stat?" }, /* 38 */ + { 1, 0, sys_getppid, "getppid" }, /* 39 */ + { 2, TF, sys_lstat, "lstat?" }, /* 40 */ + { 1, TD, sys_dup, "dup" }, /* 41 */ + { 1, TD, sys_pipe, "pipe" }, /* 42 */ + { 1, 0, sys_getegid, "getegid" }, /* 43 */ + { 4, 0, sys_profil, "profil" }, /* 44 */ + { 4, 0, sys_ktrace, "ktrace" }, /* 45 */ + { 3, TS, sys_sigaction, "sigaction?" }, /* 46 */ + { 1, 0, sys_getgid, "getgid" }, /* 47 */ + { 2, TS, sys_sigprocmask, "sigprocmask?" }, /* 48 */ + { 2, 0, sys_getlogin, "getlogin" }, /* 49 */ + { 1, 0, sys_setlogin, "setlogin" }, /* 50 */ + { 1, TF, sys_acct, "acct" }, /* 51 */ + { 1, TS, sys_sigpending, "sigpending?" }, /* 52 */ + { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 53 */ + { 3, TD, sys_ioctl, "ioctl" }, /* 54 */ + { 1, 0, sys_reboot, "reboot" }, /* 55 */ + { 1, 0, sys_revoke, "revoke" }, /* 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, TD, sys_fstat, "fstat?" }, /* 62 */ + { 4, 0, sys_getkerninfo, "getkerninfo?" }, /* 63 */ + { 1, 0, sys_getpagesize, "getpagesize?" }, /* 64 */ + { 3, 0, sys_msync, "msync" }, /* 65 */ + { 1, TP, sys_vfork, "vfork" }, /* 66 */ + { -1, 0, printargs, "SYS_67" }, /* 67 */ + { -1, 0, printargs, "SYS_68" }, /* 68 */ + { 1, 0, sys_sbrk, "sbrk" }, /* 69 */ + { 1, 0, sys_sstk, "sstk" }, /* 70 */ + { 6, 0, sys_mmap, "mmap?" }, /* 71 */ + { 1, 0, sys_vadvise, "vadvise" }, /* 72 */ + { 2, 0, sys_munmap, "munmap" }, /* 73 */ + { 3, 0, sys_mprotect, "mprotect" }, /* 74 */ + { 3, 0, sys_madvise, "madvise" }, /* 75 */ + { -1, 0, printargs, "SYS_76" }, /* 76 */ + { -1, 0, printargs, "SYS_77" }, /* 77 */ + { 3, 0, sys_mincore, "mincore" }, /* 78 */ + { 2, 0, sys_getgroups, "getgroups" }, /* 79 */ + { 2, 0, sys_setgroups, "setgroups" }, /* 80 */ + { 1, 0, sys_getpgrp, "getpgrp" }, /* 81 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 82 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 83 */ + { 1, TP, sys_wait, "wait?" }, /* 84 */ + { 1, TF, sys_swapon, "swapon" }, /* 85 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 86 */ + { 2, 0, sys_gethostname, "gethostname?" }, /* 87 */ + { 2, 0, sys_sethostname, "sethostname?" }, /* 88 */ + { 1, 0, sys_getdtablesize, "getdtablesize" }, /* 89 */ + { 2, TD, sys_dup2, "dup2" }, /* 90 */ + { -1, 0, printargs, "SYS_91" }, /* 91 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 92 */ + { 5, TD, sys_select, "select" }, /* 93 */ + { -1, 0, printargs, "SYS_94" }, /* 94 */ + { 1, TD, 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 */ + { 4, TN, sys_send, "send?" }, /* 101 */ + { 4, TN, sys_recv, "recv?" }, /* 102 */ + { 1, TS, sys_sigreturn, "sigreturn?" }, /* 103 */ + { 3, TN, sys_bind, "bind" }, /* 104 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 105 */ + { 2, TN, sys_listen, "listen" }, /* 106 */ + { -1, 0, printargs, "SYS_107" }, /* 107 */ + { 3, TS, sys_sigvec, "sigvec?" }, /* 108 */ + { 1, TS, sys_sigblock, "sigblock?" }, /* 109 */ + { 1, TS, sys_sigsetmask, "sigsetmask?" }, /* 110 */ + { 1, TS, sys_sigsuspend, "sigsuspend?" }, /* 111 */ + { 2, TS, sys_sigstack, "sigstack?" }, /* 112 */ + { 3, TN, sys_recvmsg, "recvmsg?" }, /* 113 */ + { 3, TN, sys_sendmsg, "sendmsg?" }, /* 114 */ + { -1, 0, printargs, "SYS_115" }, /* 115 */ + { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 116 */ + { 2, 0, sys_getrusage, "getrusage" }, /* 117 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 118 */ + { -1, 0, printargs, "SYS_119" }, /* 119 */ + { 3, TD, sys_readv, "readv" }, /* 120 */ + { 3, TD, sys_writev, "writev" }, /* 121 */ + { 2, 0, sys_settimeofday, "settimeofday" }, /* 122 */ + { 3, TD, sys_fchown, "fchown" }, /* 123 */ + { 2, TD, 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, TD, sys_ftruncate, "ftruncate?" }, /* 130 */ + { 2, TD, sys_flock, "flock" }, /* 131 */ + { 2, 0, sys_mkfifo, "mkfifo" }, /* 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 */ + { -1, 0, printargs, "SYS_139" }, /* 139 */ + { 2, 0, sys_adjtime, "adjtime" }, /* 140 */ + { 3, TN, sys_getpeername, "getpeername?" }, /* 141 */ + { 1, 0, sys_gethostid, "gethostid?" }, /* 142 */ + { 1, 0, sys_sethostid, "sethostid?" }, /* 143 */ + { 2, 0, sys_getrlimit, "getrlimit?" }, /* 144 */ + { 2, 0, sys_setrlimit, "setrlimit?" }, /* 145 */ + { 2, TS, sys_killpg, "killpg?" }, /* 146 */ + { 1, 0, sys_setsid, "setsid" }, /* 147 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 148 */ + { 1, 0, sys_quota, "quota?" }, /* 149 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 150 */ + { -1, 0, printargs, "SYS_151" }, /* 151 */ + { -1, 0, printargs, "SYS_152" }, /* 152 */ + { -1, 0, printargs, "SYS_153" }, /* 153 */ + { -1, 0, printargs, "SYS_154" }, /* 154 */ + { 2, 0, sys_nfssvc, "nfssvc" }, /* 155 */ + { 4, 0, sys_getdirentries, "getdirentries?" }, /* 156 */ + { 2, TF, sys_statfs, "statfs" }, /* 157 */ + { 2, TD, sys_fstatfs, "fstatfs" }, /* 158 */ + { -1, 0, printargs, "SYS_159" }, /* 159 */ + { -1, 0, printargs, "SYS_160" }, /* 160 */ + { 2, 0, sys_getfh, "getfh" }, /* 161 */ + { 2, 0, sys_getdomainname, "getdomainname" }, /* 162 */ + { 2, 0, sys_setdomainname, "setdomainname" }, /* 163 */ + { 1, 0, sys_uname, "uname" }, /* 164 */ + { 2, 0, sys_sysarch, "sysarch" }, /* 165 */ + { 3, 0, sys_rtprio, "rtprio" }, /* 166 */ + { -1, 0, printargs, "SYS_167" }, /* 167 */ + { -1, 0, printargs, "SYS_168" }, /* 168 */ + { 5, TI, sys_semsys, "semsys" }, /* 169 */ + { 6, TI, sys_msgsys, "msgsys" }, /* 170 */ + { 4, TI, sys_shmsys, "shmsys" }, /* 171 */ + { -1, 0, printargs, "SYS_172" }, /* 172 */ + { 5, TD, sys_pread, "pread" }, /* 173 */ + { 5, TD, sys_pwrite, "pwrite" }, /* 174 */ + { -1, 0, printargs, "SYS_175" }, /* 175 */ + { 1, 0, sys_ntp_adjtime, "ntp_adjtime" }, /* 176 */ + { -1, 0, printargs, "SYS_177" }, /* 177 */ + { -1, 0, printargs, "SYS_178" }, /* 178 */ + { -1, 0, printargs, "SYS_179" }, /* 179 */ + { -1, 0, printargs, "SYS_180" }, /* 180 */ + { 1, 0, sys_setgid, "setgid" }, /* 181 */ + { 1, 0, sys_setegid, "setegid" }, /* 182 */ + { 1, 0, sys_seteuid, "seteuid" }, /* 183 */ + { -1, 0, printargs, "SYS_184" }, /* 184 */ + { -1, 0, printargs, "SYS_185" }, /* 185 */ + { -1, 0, printargs, "SYS_186" }, /* 186 */ + { -1, 0, printargs, "SYS_187" }, /* 187 */ + { 2, TF, sys_stat, "stat" }, /* 188 */ + { 2, TD, sys_fstat, "fstat" }, /* 189 */ + { 2, TF, sys_lstat, "lstat" }, /* 190 */ + { 2, TF, sys_pathconf, "pathconf" }, /* 191 */ + { 2, 0, sys_fpathconf, "fpathconf" }, /* 192 */ + { -1, 0, printargs, "SYS_193" }, /* 193 */ + { 2, 0, sys_getrlimit, "getrlimit" }, /* 194 */ + { 2, 0, sys_setrlimit, "setrlimit" }, /* 195 */ + { 4, 0, sys_getdirentries, "getdirentries" }, /* 196 */ + { 7, 0, sys_mmap, "mmap" }, /* 197 */ + { 1, 0, sys___syscall, "__syscall" }, /* 198 */ + { 4, TD, sys_lseek, "lseek" }, /* 199 */ + { 3, TF, sys_truncate, "truncate" }, /* 200 */ + { 3, TD, sys_ftruncate, "ftruncate" }, /* 201 */ + { 6, 0, sys___sysctl, "__sysctl" }, /* 202 */ + { 2, 0, sys_mlock, "mlock" }, /* 203 */ + { 2, 0, sys_munlock, "munlock" }, /* 204 */ + { 1, 0, sys_undelete, "undelete" }, /* 205 */ + { 2, 0, sys_futimes, "futimes" }, /* 206 */ + { 1, 0, sys_getpgid, "getpgid" }, /* 207 */ + { -1, 0, printargs, "SYS_208" }, /* 208 */ + { 3, TN, sys_poll, "poll" }, /* 209 */ + { -1, 0, printargs, "SYS_210" }, /* 210 */ + { -1, 0, printargs, "SYS_211" }, /* 211 */ + { -1, 0, printargs, "SYS_212" }, /* 212 */ + { -1, 0, printargs, "SYS_213" }, /* 213 */ + { -1, 0, printargs, "SYS_214" }, /* 214 */ + { -1, 0, printargs, "SYS_215" }, /* 215 */ + { -1, 0, printargs, "SYS_216" }, /* 216 */ + { -1, 0, printargs, "SYS_217" }, /* 217 */ + { -1, 0, printargs, "SYS_218" }, /* 218 */ + { -1, 0, printargs, "SYS_219" }, /* 219 */ + { 4, 0, sys___semctl, "__semctl" }, /* 220 */ + { 3, TI, sys_semget, "semget" }, /* 221 */ + { 3, TI, sys_semop, "semop" }, /* 222 */ + { -1, 0, printargs, "SYS_223" }, /* 223 */ + { 3, TI, sys_msgctl, "msgctl" }, /* 224 */ + { 2, TI, sys_msgget, "msgget" }, /* 225 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 226 */ + { 5, TI, sys_msgrcv, "msgrcv" }, /* 227 */ + { 3, TI, sys_shmat, "shmat" }, /* 228 */ + { 3, TI, sys_shmctl, "shmctl" }, /* 229 */ + { 1, TI, sys_shmdt, "shmdt" }, /* 230 */ + { 3, TI, sys_shmget, "shmget" }, /* 231 */ + { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 232 */ + { 2, 0, sys_clock_settime, "clock_settime" }, /* 233 */ + { 2, 0, sys_clock_getres, "clock_getres" }, /* 234 */ + { -1, 0, printargs, "SYS_235" }, /* 235 */ + { -1, 0, printargs, "SYS_236" }, /* 236 */ + { -1, 0, printargs, "SYS_237" }, /* 237 */ + { -1, 0, printargs, "SYS_238" }, /* 238 */ + { -1, 0, printargs, "SYS_239" }, /* 239 */ + { 2, 0, sys_nanosleep, "nanosleep" }, /* 240 */ + { -1, 0, printargs, "SYS_241" }, /* 241 */ + { -1, 0, printargs, "SYS_242" }, /* 242 */ + { -1, 0, printargs, "SYS_243" }, /* 243 */ + { -1, 0, printargs, "SYS_244" }, /* 244 */ + { -1, 0, printargs, "SYS_245" }, /* 245 */ + { -1, 0, printargs, "SYS_246" }, /* 246 */ + { -1, 0, printargs, "SYS_247" }, /* 247 */ + { -1, 0, printargs, "SYS_248" }, /* 248 */ + { -1, 0, printargs, "SYS_249" }, /* 249 */ + { 3, 0, sys_minherit, "minherit" }, /* 250 */ + { 1, 0, sys_rfork, "rfork" }, /* 251 */ + { 3, 0, sys_openbsd_poll, "openbsd_poll" }, /* 252 */ + { 1, 0, sys_issetugid, "issetugid" }, /* 253 */ + { 3, TF, sys_lchown, "lchown" }, /* 254 */ + { -1, 0, printargs, "SYS_255" }, /* 255 */ + { -1, 0, printargs, "SYS_256" }, /* 256 */ + { -1, 0, printargs, "SYS_257" }, /* 257 */ + { -1, 0, printargs, "SYS_258" }, /* 258 */ + { -1, 0, printargs, "SYS_259" }, /* 259 */ + { -1, 0, printargs, "SYS_260" }, /* 260 */ + { -1, 0, printargs, "SYS_261" }, /* 261 */ + { -1, 0, printargs, "SYS_262" }, /* 262 */ + { -1, 0, printargs, "SYS_263" }, /* 263 */ + { -1, 0, printargs, "SYS_264" }, /* 264 */ + { -1, 0, printargs, "SYS_265" }, /* 265 */ + { -1, 0, printargs, "SYS_266" }, /* 266 */ + { -1, 0, printargs, "SYS_267" }, /* 267 */ + { -1, 0, printargs, "SYS_268" }, /* 268 */ + { -1, 0, printargs, "SYS_269" }, /* 269 */ + { -1, 0, printargs, "SYS_270" }, /* 270 */ + { -1, 0, printargs, "SYS_271" }, /* 271 */ + { 3, TD, sys_getdents, "getdents" }, /* 272 */ + { -1, 0, printargs, "SYS_273" }, /* 273 */ + { 2, 0, sys_lchmod, "lchmod" }, /* 274 */ + { 3, 0, sys_netbsd_lchown, "netbsd_lchown" }, /* 275 */ + { 2, 0, sys_lutimes, "lutimes" }, /* 276 */ + { 3, 0, sys_netbsd_msync, "netbsd_msync" }, /* 277 */ + { 2, 0, sys_nstat, "nstat" }, /* 278 */ + { 2, 0, sys_nfstat, "nfstat" }, /* 279 */ + { 2, 0, sys_nlstat, "nlstat" }, /* 280 */ + { -1, 0, printargs, "SYS_281" }, /* 281 */ + { -1, 0, printargs, "SYS_282" }, /* 282 */ + { -1, 0, printargs, "SYS_283" }, /* 283 */ + { -1, 0, printargs, "SYS_284" }, /* 284 */ + { -1, 0, printargs, "SYS_285" }, /* 285 */ + { -1, 0, printargs, "SYS_286" }, /* 286 */ + { -1, 0, printargs, "SYS_287" }, /* 287 */ + { -1, 0, printargs, "SYS_288" }, /* 288 */ + { -1, 0, printargs, "SYS_289" }, /* 289 */ + { -1, 0, printargs, "SYS_290" }, /* 290 */ + { -1, 0, printargs, "SYS_291" }, /* 291 */ + { -1, 0, printargs, "SYS_292" }, /* 292 */ + { -1, 0, printargs, "SYS_293" }, /* 293 */ + { -1, 0, printargs, "SYS_294" }, /* 294 */ + { -1, 0, printargs, "SYS_295" }, /* 295 */ + { -1, 0, printargs, "SYS_296" }, /* 296 */ + { 2, 0, sys_fhstatfs, "fhstatfs" }, /* 297 */ + { 2, 0, sys_fhopen, "fhopen" }, /* 298 */ + { 2, 0, sys_fhstat, "fhstat" }, /* 299 */ + { 1, 0, sys_modnext, "modnext" }, /* 300 */ + { 2, 0, sys_modstat, "modstat" }, /* 301 */ + { 1, 0, sys_modfnext, "modfnext" }, /* 302 */ + { 1, 0, sys_modfind, "modfind" }, /* 303 */ + { 1, 0, sys_kldload, "kldload" }, /* 304 */ + { 1, 0, sys_kldunload, "kldunload" }, /* 305 */ + { 1, 0, sys_kldfind, "kldfind" }, /* 306 */ + { 1, 0, sys_kldnext, "kldnext" }, /* 307 */ + { 2, 0, sys_kldstat, "kldstat" }, /* 308 */ + { 1, 0, sys_kldfirstmod, "kldfirstmod" }, /* 309 */ + { 1, 0, sys_getsid, "getsid" }, /* 310 */ + { 3, 0, sys_setresuid, "setresuid" }, /* 311 */ + { 3, 0, sys_setresgid, "setresgid" }, /* 312 */ + { -1, 0, printargs, "SYS_313" }, /* 313 */ + { 1, 0, sys_aio_return, "aio_return" }, /* 314 */ + { 3, 0, sys_aio_suspend, "aio_suspend" }, /* 315 */ + { 2, 0, sys_aio_cancel, "aio_cancel" }, /* 316 */ + { 1, 0, sys_aio_error, "aio_error" }, /* 317 */ + { 1, 0, sys_aio_read, "aio_read" }, /* 318 */ + { 1, 0, sys_aio_write, "aio_write" }, /* 319 */ + { 4, 0, sys_lio_listio, "lio_listio" }, /* 320 */ + { 1, 0, sys_yield, "yield" }, /* 321 */ + { 1, 0, sys_thr_sleep, "thr_sleep" }, /* 322 */ + { 1, 0, sys_thr_wakeup, "thr_wakeup" }, /* 323 */ + { 1, 0, sys_mlockall, "mlockall" }, /* 324 */ + { 1, 0, sys_munlockall, "munlockall" }, /* 325 */ + { 2, 0, sys___getcwd, "__getcwd" }, /* 326 */ + { 2, 0, sys_sched_setparam, "sched_setparam" }, /* 327 */ + { 2, 0, sys_sched_getparam, "sched_getparam" }, /* 328 */ + { 3, 0, sys_sched_setscheduler, "sched_setscheduler" }, /* 329 */ + { 1, 0, sys_sched_getscheduler, "sched_getscheduler" }, /* 330 */ + { 1, 0, sys_sched_yield, "sched_yield" }, /* 331 */ + { 1, 0, sys_sched_get_priority_max, "sched_get_priority_max" }, /* 332 */ + { 1, 0, sys_sched_get_priority_min, "sched_get_priority_min" }, /* 333 */ + { 2, 0, sys_sched_rr_get_interval, "sched_rr_get_interval" }, /* 334 */ + { 2, 0, sys_utrace, "utrace" }, /* 335 */ + { 7, TD|TN, sys_sendfile, "sendfile" }, /* 336 */ + { 3, 0, sys_kldsym, "kldsym" }, /* 337 */ + { 1, 0, sys_jail, "jail" }, /* 338 */ + { -1, 0, printargs, "SYS_339" }, /* 339 */ + { 3, TS, sys_sigprocmask, "sigprocmask" }, /* 340 */ + { 1, TS, sys_sigsuspend, "sigsuspend" }, /* 341 */ + { 3, TS, sys_sigaction, "sigaction" }, /* 342 */ + { 1, TS, sys_sigpending, "sigpending" }, /* 343 */ + { 1, TS, sys_sigreturn, "sigreturn" }, /* 344 */ + { -1, 0, printargs, "SYS_345" }, /* 345 */ + { -1, 0, printargs, "SYS_346" }, /* 346 */ + { 3, 0, sys___acl_get_file, "__acl_get_file" }, /* 347 */ + { 3, 0, sys___acl_set_file, "__acl_set_file" }, /* 348 */ + { 3, 0, sys___acl_get_fd, "__acl_get_fd" }, /* 349 */ + { 3, 0, sys___acl_set_fd, "__acl_set_fd" }, /* 350 */ + { 2, 0, sys___acl_delete_file, "__acl_delete_file" }, /* 351 */ + { 2, 0, sys___acl_delete_fd, "__acl_delete_fd" }, /* 352 */ + { 3, 0, sys___acl_aclcheck_file, "__acl_aclcheck_file" }, /* 353 */ + { 3, 0, sys___acl_aclcheck_fd, "__acl_aclcheck_fd" }, /* 354 */ + { 4, 0, sys_extattrctl, "extattrctl" }, /* 355 */ + { 4, 0, sys_extattr_set_file, "extattr_set_file" }, /* 356 */ + { 4, 0, sys_extattr_get_file, "extattr_get_file" }, /* 357 */ + { 2, 0, sys_extattr_delete_file, "extattr_delete_file" }, /* 358 */ + { 2, 0, sys_aio_waitcomplete, "aio_waitcomplete" }, /* 359 */ + { 3, 0, sys_getresuid, "getresuid" }, /* 360 */ + { 3, 0, sys_getresgid, "getresgid" }, /* 361 */ + { 1, 0, sys_kqueue, "kqueue" }, /* 362 */ + { 6, 0, sys_kevent, "kevent" }, /* 363 */
diff --git a/strace-4.5.20/freebsd/ioctlent.sh b/strace-4.5.20/freebsd/ioctlent.sh new file mode 100755 index 0000000..7d8a21c --- /dev/null +++ b/strace-4.5.20/freebsd/ioctlent.sh
@@ -0,0 +1,62 @@ +#!/bin/sh + +# initialy from $FreeBSD: src/usr.bin/kdump/mkioctls,v 1.18 2000/08/02 07:37:44 ru Exp $ +# changed by Gaël Roualland. + +# Validate arg count. +if [ $# -ne 1 ] +then + echo "usage: $0 include-directory" >&2 + exit 1 +fi + +# build a list of files with ioctls +ioctl_includes=` + cd $1 + find * -name '*.h' -follow | + egrep -v '^(netns)/' | + xargs egrep -l \ +'^#[ ]*define[ ]+[A-Za-z_][A-Za-z0-9_]*[ ]+_IO[^a-z0-9_]'` + +# Generate the output file. +echo '/* This file is automatically generated by ioctlent.sh */' +echo +echo '/* XXX obnoxious prerequisites. */' +echo '#define COMPAT_43' +echo +echo '#include <sys/types.h>' +echo '#include <sys/param.h>' +echo '#include <sys/devicestat.h>' +echo '#include <sys/disklabel.h>' +echo '#include <sys/socket.h>' +echo '#include <sys/time.h>' +echo '#include <sys/tty.h>' +echo '#include <net/ethernet.h>' +echo '#include <net/if.h>' +echo '#include <net/if_var.h>' +echo '#include <net/route.h>' +echo '#include <netatm/atm.h>' +echo '#include <netatm/atm_if.h>' +echo '#include <netatm/atm_sap.h>' +echo '#include <netatm/atm_sys.h>' +echo '#include <netinet/in.h>' +echo '#include <netinet/ip_compat.h>' +echo '#include <netinet/ip_fil.h>' +echo '#include <netinet/ip_auth.h>' +echo '#include <netinet/ip_nat.h>' +echo '#include <netinet/ip_frag.h>' +echo '#include <netinet/ip_state.h>' +echo '#include <netinet/ip_mroute.h>' +echo '#include <netinet6/in6_var.h>' +echo '#include <netinet6/nd6.h>' +echo '#include <netinet6/ip6_mroute.h>' +echo '#include <cam/cam.h>' +echo '#include <stdio.h>' +echo +echo "$ioctl_includes" | sed -e 's/^/#include </' -e s'/$/>/' +echo +echo 'struct ioctlent ioctlent [] =' +echo '{' +(cd $1 && for i in $ioctl_includes ; do echo "#include <$i>" | gcc -I$1 -E -dM - | egrep '^#[ ]*define[ ]+[A-Za-z_][A-Za-z0-9_]*[ ]+_IO[^a-z0-9_]' | sed -n -e 's|^#[ ]*define[ ]*\([A-Za-z_][A-Za-z0-9_]*\).*| { "'$i'", "\1", \1 },|p' ; done ) + +echo '};'
diff --git a/strace-4.5.20/freebsd/syscalls.cat b/strace-4.5.20/freebsd/syscalls.cat new file mode 100644 index 0000000..0dde7b6 --- /dev/null +++ b/strace-4.5.20/freebsd/syscalls.cat
@@ -0,0 +1,177 @@ +# +# Copyright (c) 2000, Gaël Roualland <gael.roualland@iname.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$ +# +# Syscalls categories +# syntax: syscall catmask +# +# mostly built from other archs/os syscallent.h + +# file calls +access TF +acct TF +acl TF +chdir TF +chmod TF +chown TF +chroot TF +creat TF +close TF +chflags TF +fstat64 TF +fstat TF +fchdir TF +fchflags TF +lchown TF +link TF +lstat TF +lstat64 TF +lxstat TF +mkdir TF +mknod TF +mount TF +oldlstat TF +oldstat TF +oldumount TF +open TF +outime TF +pathconf TF +pread TF +pwrite TF +readlink TF +rename TF +rmdir TF +sendfile TF +stat TF +stat64 TF +statfs TF +statvfs TF +swapon TF +symlink TF +truncate TF +umount TF +unlink TF +unmount TF +uselib TF +utime TF +utimes TF +xmknod TF +xstat TF + +# file/process calls +exec TF|TP +execv TF|TP +execve TF|TP + +# IPC calls +msgctl TI +msgget TI +msgrcv TI +msgsnd TI +msgsys TI +semctl TI +semget TI +semop TI +semsys TI +shmat TI +shmctl TI +shmdt TI +shmget TI +shmsys TI + +# network calls +accept TN +bind TN +connect TN +getmsg TN +getpeername TN +getpmsg TN +getsockname TN +getsockopt TN +listen TN +poll TN +putmsg TN +putpmsg TN +recv TN +recvfrom TN +recvmsg TN +send TN +sendmsg TN +sendto TN +setsockopt TN +shutdown TN +socket TN +socketpair TN + +# process calls +_exit TP +clone TP +fork TP +fork1 TP +owait TP +owait3 TP +vfork TP +wait TP +wait4 TP +waitid TP +waitpid TP +waitsys TP + +# signal calls +kill TS +killpg TS +ksigqueue TS +pause TS +rt_sigaction TS +rt_sigpending TS +rt_sigprocmask TS +rt_sigqueueinfo TS +rt_sigreturn TS +rt_sigsuspend TS +rt_sigtimedwait TS +sigaction TS +sigaltstack TS +sigblock TS +sigcleanup TS +sigfillset TS +siggetmask TS +sighold TS +sigignore TS +signal TS +sigpause TS +sigpending TS +sigpoll TS +sigprocmask TS +sigrelse TS +sigreturn TS +sigsendset TS +sigset TS +sigsetmask TS +sigstack TS +sigsuspend TS +sigtimedwait TS +sigvec TS
diff --git a/strace-4.5.20/freebsd/syscalls.pl b/strace-4.5.20/freebsd/syscalls.pl new file mode 100644 index 0000000..2a1827c --- /dev/null +++ b/strace-4.5.20/freebsd/syscalls.pl
@@ -0,0 +1,156 @@ +#!/usr/bin/perl -w +# +# Copyright (c) 2000, Gaël Roualland <gael.roualland@iname.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$ +#/ + +# Buils syscall.h and syscallent.h from: +# - syscalls.cat containing lines of format: syscall catmask +# - syscalls.print containing lines of format: syscall [printfunction] +# if no printfunction is provided, sys_<call> is used. +# - syscalls.master in the FreeBSD kernel source tree (/usr/src/sys/kern) + +use strict; +use POSIX; + +use vars qw(%sysprint %syscat); + +sub usage() { + print STDERR + "usage: $0 syscalls.master [<syscalls.print>] [<syscalls.cat>]\n"; + exit 1; +} + +sub readprint ($) { + my($fprint) = @_; + + open (PRINT, "< $fprint") || die "can't open $fprint: $!"; + while(<PRINT>) { + chomp; + s/^\s*//; + s/\s+$//; + s/#.*$//; + my($sys, $func) = split(/\s+/); + if (defined($sys)) { + if (defined($func)) { + $sysprint{$sys} = $func; + } else { + $sysprint{$sys} = "sys_$sys"; + } + } + } + close(PRINT); +} + +sub readcat ($) { + my($fcat) = @_; + + open (CAT, "< $fcat") || die "can't open $fcat: $!"; + while(<CAT>) { + chomp; + s/^\s*//; + s/\s+$//; + s/#.*$//; + my($sys, $cat) = split(/\s+/); + $syscat{$sys} = $cat if (defined($sys) && defined($cat)); + } + close(CAT); +} + + +usage if (!defined($ARGV[0]) || defined($ARGV[3])); + +%sysprint = (); +readprint $ARGV[1] if defined $ARGV[1]; + +%syscat = (); +readcat $ARGV[2] if defined $ARGV[2]; + +open(MASTER, "< $ARGV[0]") || die "can't open $ARGV[0]: $!"; + +open(SYSCALL, "> syscall.h") || die "can't create syscall.h: $!"; + +print SYSCALL "/*\n * Automatically generated by $0 on " . ctime(time()) . " */\n\n"; +print "/*\n * Automatically generated by $0 on " . ctime(time()) . " */\n\n"; + +my $sysnum = 0; + +while (<MASTER>) { + chomp; + # join broken lines + while (/\\$/) { + my $line; + s/\\$//; + $line = <MASTER>; + chomp($line); + $_ = "$_$line"; + } + + if (/^(\d+)\s+(?:MPSAFE\s+)?(\w+)\s+\w+\s+\{\s*([^}]+)\s*\}([^}]*)$/) { + my($compat, $proto, $ext, $name, $nargs, @args, $pfunc, $cat); + + next if $2 eq 'OBSOL' || $2 eq 'UNIMPL'; + + $compat = $2 eq 'COMPAT' ? '?' : ""; + + $proto = $3; + $ext = $4; + + if ($1 > $sysnum) { # syscall gap + while($sysnum < $1) { + print " { -1,\t0,\tprintargs,\t\"SYS_$sysnum\"\t}, /* $sysnum */\n"; + $sysnum++; + } + } elsif ($1 < $sysnum) { + warn "error in master file: syscall $1 found, expecting $sysnum."; + } + + if ($proto =~ /^[^\s]+\s+([^\s]+)\s*\(([^)]*)\);/) { + my @args = split(/,/, $2); + $nargs = @args; + $name = $1; + $name = $1 if ($ext =~ /^\s*([^\s]+)\s+[^\s]+\s+[^\s]+$/); + if (defined($sysprint{$name})) { + $pfunc = $sysprint{$name}; + print SYSCALL "int $pfunc();\n"; + } else { + $pfunc = "sys_$name"; + print SYSCALL "#define $pfunc printargs\n"; + } + if (defined($syscat{$name})) { + $cat = $syscat{$name}; + } else { + $cat = "0"; + } + $name .= $compat; + print " { $nargs,\t$cat,\t$pfunc,\t\"$name\"\t}, /* $sysnum */\n"; + $sysnum++; + } else { + warn "bad syscall specification for $sysnum: $proto"; + } + } +}
diff --git a/strace-4.5.20/freebsd/syscalls.print b/strace-4.5.20/freebsd/syscalls.print new file mode 100644 index 0000000..bc59a6f --- /dev/null +++ b/strace-4.5.20/freebsd/syscalls.print
@@ -0,0 +1,192 @@ +# +# Copyright (c) 2000, Gaël Roualland <gael.roualland@iname.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$ +# +# Printable syscalls +# syntax: syscall [printfunc] +# +# mostly built from sys_* functions in source code + +__getcwd +__sysctl +accept +access +adjtime +alarm +bind +brk +capget +capset +chdir +chflags +chmod +chown +chroot +close +connect +creat +dup +dup2 +errlist +execv +execve +exit +fchdir +fchflags +fchmod +fchown +fchroot +fcntl +flock +fork +fpathconf +fstat +fstatfs +fsync +ftruncate +getdents +getdirentries +getdomainname +getdtablesize +getgid +getgroups +gethostid +gethostname +getitimer +getpagesize +getpeername +getpgid +getpgrp +getpid +getpriority +getrlimit +getrusage +getsid +getsockname +getsockopt +gettimeofday +getuid +indir +ioctl +kill +killpg +link +listen +lseek +lstat +mincore +mkdir +mkfifo +mknod +mmap +mprotect +msgctl +msgget +msgrcv +msgsnd +msync +munmap +nerr +nice +open +pathconf +pipe +poll +pread +ptrace +pwrite +quotactl +read +readlink +readv +recv +recvfrom +recvmsg +rename +rmdir +sbrk +select +semctl +semget +semop +send +sendfile +sendmsg +sendto +setdomainname +setgroups +sethostname +setitimer +setpgid +setpgrp +setpriority +setregid +setresgid +setresuid +setreuid +setrlimit +setsid +setsockopt +settimeofday +shmat +shmctl +shmdt +shmget +shutdown +sigaction +sigaltstack +sigblock +sigcleanup +signal +sigpause +sigpending +sigprocmask +sigsetmask +sigstack +sigsuspend +sigvec +socket +socketpair +stat +statfs +stime +symlink +sysctl +time +times +truncate +umask +uname +unlink +utime +utimes +vfork +wait +wait4 +waitpid +write +writev
diff --git a/strace-4.5.20/install-sh b/strace-4.5.20/install-sh new file mode 100755 index 0000000..6781b98 --- /dev/null +++ b/strace-4.5.20/install-sh
@@ -0,0 +1,520 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2009-04-28.21; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# 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. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + trap '(exit $?); exit' 1 2 13 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + -*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$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 $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # 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. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End:
diff --git a/strace-4.5.20/io.c b/strace-4.5.20/io.c new file mode 100644 index 0000000..3d2970c --- /dev/null +++ b/strace-4.5.20/io.c
@@ -0,0 +1,405 @@ +/* + * 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$ + */ + +#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; +{ +#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1 + union { + struct { u_int32_t base; u_int32_t len; } iov32; + struct { u_int64_t base; u_int64_t len; } iov64; + } iov; +#define sizeof_iov \ + (personality_wordsize[current_personality] == 4 \ + ? sizeof(iov.iov32) : sizeof(iov.iov64)) +#define iov_iov_base \ + (personality_wordsize[current_personality] == 4 \ + ? (u_int64_t) iov.iov32.base : iov.iov64.base) +#define iov_iov_len \ + (personality_wordsize[current_personality] == 4 \ + ? (u_int64_t) iov.iov32.len : iov.iov64.len) +#else + struct iovec iov; +#define sizeof_iov sizeof(iov) +#define iov_iov_base iov.iov_base +#define iov_iov_len iov.iov_len +#endif + 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); +#undef sizeof_iov +#undef iov_iov_base +#undef iov_iov_len +} + +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); + tprintf(", %lu, ", tcp->u_arg[2]); + printllval(tcp, "%llu", 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]); + tprintf(", %lu, ", tcp->u_arg[2]); + printllval(tcp, "%llu", 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 { + 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]); + printllval(tcp, "%#llx", 3); + } + return 0; +} + +int +sys_pwrite64(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) { + tprintf("%ld, ", tcp->u_arg[0]); + printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]); + tprintf(", %lu, ", tcp->u_arg[2]); + printllval(tcp, "%#llx", 3); + } + 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/strace-4.5.20/ioctl.c b/strace-4.5.20/ioctl.c new file mode 100644 index 0000000..906c71e --- /dev/null +++ b/strace-4.5.20/ioctl.c
@@ -0,0 +1,210 @@ +/* + * 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$ + */ + +#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); + case 0x22: + return scsi_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/strace-4.5.20/ioctlsort.c b/strace-4.5.20/ioctlsort.c new file mode 100644 index 0000000..1009d75 --- /dev/null +++ b/strace-4.5.20/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$ + */ + + +#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/strace-4.5.20/ipc.c b/strace-4.5.20/ipc.c new file mode 100644 index 0000000..4c902bf --- /dev/null +++ b/strace-4.5.20/ipc.c
@@ -0,0 +1,565 @@ +/* + * 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$ + */ + +#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 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 }, +}; + +static const struct xlat semop_flags[] = { + { SEM_UNDO, "SEM_UNDO" }, + { IPC_NOWAIT, "IPC_NOWAIT" }, + { 0, NULL }, +}; + +int sys_msgget(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) { + if (tcp->u_arg[0]) + tprintf("%#lx", 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 + +static int +indirect_ipccall(tcp) +struct tcb *tcp; +{ +#ifdef LINUX +#ifdef X86_64 + return current_personality > 0; +#endif +#if defined IA64 + return tcp->scno < 1024; /* ia32 emulation syscalls are low */ +#endif +#if !defined MIPS && !defined HPPA + return 1; +#endif +#endif /* LINUX */ + return 0; +} + +int sys_msgctl(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) { + tprintf("%lu, ", tcp->u_arg[0]); + PRINTCTL(msgctl_flags, tcp->u_arg[1], "MSG_???"); + tprintf(", %#lx", tcp->u_arg[indirect_ipccall(tcp) ? 3 : 2]); + } + return 0; +} + +static void +tprint_msgsnd(struct tcb *tcp, long addr, unsigned long count, + unsigned long flags) +{ + long mtype; + + if (umove(tcp, addr, &mtype) < 0) { + tprintf("%#lx", addr); + } else { + tprintf("{%lu, ", mtype); + printstr(tcp, addr + sizeof(mtype), count); + tprintf("}"); + } + tprintf(", %lu, ", count); + printflags(msg_flags, flags, "MSG_???"); +} + +int sys_msgsnd(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%d, ", (int) tcp->u_arg[0]); + if (indirect_ipccall(tcp)) { + tprint_msgsnd(tcp, tcp->u_arg[3], tcp->u_arg[1], + tcp->u_arg[2]); + } else { + tprint_msgsnd(tcp, tcp->u_arg[1], tcp->u_arg[2], + tcp->u_arg[3]); + } + } + return 0; +} + +static void +tprint_msgrcv(struct tcb *tcp, long addr, unsigned long count, long msgtyp) +{ + long mtype; + + if (syserror(tcp) || umove(tcp, addr, &mtype) < 0) { + tprintf("%#lx", addr); + } else { + tprintf("{%lu, ", mtype); + printstr(tcp, addr + sizeof(mtype), count); + tprintf("}"); + } + tprintf(", %lu, %ld, ", count, msgtyp); +} + +int sys_msgrcv(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%d, ", (int) tcp->u_arg[0]); + } else { + if (indirect_ipccall(tcp)) { + struct ipc_wrapper { + struct msgbuf *msgp; + long msgtyp; + } tmp; + + if (umove(tcp, tcp->u_arg[3], &tmp) < 0) { + tprintf("%#lx, %lu, ", + tcp->u_arg[3], tcp->u_arg[1]); + } else { + tprint_msgrcv(tcp, (long) tmp.msgp, + tcp->u_arg[1], tmp.msgtyp); + } + printflags(msg_flags, tcp->u_arg[2], "MSG_???"); + } else { + tprint_msgrcv(tcp, tcp->u_arg[1], + tcp->u_arg[2], tcp->u_arg[3]); + printflags(msg_flags, tcp->u_arg[4], "MSG_???"); + } + } + return 0; +} + +static void +tprint_sembuf(struct tcb *tcp, long addr, unsigned long count) +{ + unsigned long i, max_count; + + if (abbrev(tcp)) + max_count = (max_strlen < count) ? max_strlen : count; + else + max_count = count; + + if (!max_count) { + tprintf("%#lx, %lu", addr, count); + return; + } + + for(i = 0; i < max_count; ++i) { + struct sembuf sb; + if (i) + tprintf(", "); + if (umove(tcp, addr + i * sizeof(struct sembuf), &sb) < 0) { + if (i) { + tprintf("{???}"); + break; + } else { + tprintf("%#lx, %lu", addr, count); + return; + } + } else { + if (!i) + tprintf("{"); + tprintf("{%u, %d, ", sb.sem_num, sb.sem_op); + printflags(semop_flags, sb.sem_flg, "SEM_???"); + tprintf("}"); + } + } + + if (i < max_count || max_count < count) + tprintf(", ..."); + + tprintf("}, %lu", count); +} + +int sys_semop(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%lu, ", tcp->u_arg[0]); + if (indirect_ipccall(tcp)) { + tprint_sembuf(tcp, tcp->u_arg[3], tcp->u_arg[1]); + } else { + tprint_sembuf(tcp, tcp->u_arg[1], tcp->u_arg[2]); + } + } + return 0; +} + +#ifdef LINUX +int sys_semtimedop(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%lu, ", tcp->u_arg[0]); + if (indirect_ipccall(tcp)) { + tprint_sembuf(tcp, tcp->u_arg[3], tcp->u_arg[1]); + tprintf(", "); + printtv(tcp, tcp->u_arg[5]); + } else { + tprint_sembuf(tcp, tcp->u_arg[1], tcp->u_arg[2]); + tprintf(", "); + printtv(tcp, tcp->u_arg[3]); + } + } + return 0; +} +#endif + +int sys_semget(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) { + if (tcp->u_arg[0]) + tprintf("%#lx", 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("%#lx", 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_???"); + if (indirect_ipccall(tcp)) { + tprintf(", %#lx", tcp->u_arg[3]); + } else { + tprintf(", %#lx", tcp->u_arg[2]); + } + } + 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]); + if (indirect_ipccall(tcp)) { + tprintf(", %#lx", tcp->u_arg[3]); + tprintf(", "); + printflags(shm_flags, tcp->u_arg[1], "SHM_???"); + } else { + tprintf(", %#lx", tcp->u_arg[1]); + tprintf(", "); + printflags(shm_flags, tcp->u_arg[2], "SHM_???"); + } + if (syserror(tcp)) + return 0; +/* HPPA does not use an IPC multiplexer on Linux. */ +#if defined(LINUX) && !defined(HPPA) + 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)) { + if (indirect_ipccall(tcp)) { + tprintf("%#lx", tcp->u_arg[3]); + } else { + tprintf("%#lx", tcp->u_arg[0]); + } + } + return 0; +} + +#endif /* defined(LINUX) || defined(SUNOS4) || defined(FREEBSD) */ + +#ifdef LINUX +int +sys_mq_open(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + tprintf(", "); + /* flags */ + tprint_open_modes(tcp->u_arg[1]); + 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(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(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(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld, ", tcp->u_arg[0]); + printsigevent(tcp, tcp->u_arg[1]); + } + return 0; +} + +static void +printmqattr(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="); + tprint_open_modes(attr.mq_flags); + tprintf(", mq_maxmsg=%ld, mq_msgsize=%ld, mq_curmsg=%ld}", + attr.mq_maxmsg, attr.mq_msgsize, attr.mq_curmsgs); +# endif + } +} + +int +sys_mq_getsetattr(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/strace-4.5.20/linux/alpha/errnoent.h b/strace-4.5.20/linux/alpha/errnoent.h new file mode 100644 index 0000000..4ffaff9 --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/alpha/ioctlent.h b/strace-4.5.20/linux/alpha/ioctlent.h new file mode 100644 index 0000000..3cfdb5b --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/alpha/signalent.h b/strace-4.5.20/linux/alpha/signalent.h new file mode 100644 index 0000000..2b507e3 --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/alpha/syscallent.h b/strace-4.5.20/linux/alpha/syscallent.h new file mode 100644 index 0000000..65b9c3e --- /dev/null +++ b/strace-4.5.20/linux/alpha/syscallent.h
@@ -0,0 +1,524 @@ +/* + * 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$ + */ + + { 6, 0, printargs, "osf_syscall" }, /* 0, not implemented */ + { 1, TP, sys_exit, "exit" }, /* 1 */ + { 0, TP, sys_fork, "fork" }, /* 2 */ + { 3, TD, sys_read, "read" }, /* 3 */ + { 3, TD, sys_write, "write" }, /* 4 */ + { 5, 0, printargs, "osf_old_open" }, /* 5, not implemented */ + { 1, TD, 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, TD, sys_dup, "dup" }, /* 41 */ + { 1, TD, sys_pipe, "pipe" }, /* 42 */ + { 5, 0, printargs, "osf_set_program_attributes" }, /* 43 */ + { 5, 0, printargs, "osf_profil" }, /* 44, not implemented */ + { 3, TD|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, TD, 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 */ + { 3, 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, TD, sys_dup2, "dup2" }, /* 90 */ + { 2, TD, sys_fstat, "fstat" }, /* 91 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 92 */ + { 5, 0, sys_osf_select, "osf_select" }, /* 93 */ + { 3, TD, sys_poll, "poll" }, /* 94 */ + { 1, TD, 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, TD, sys_readv, "readv" }, /* 120 */ + { 3, TD, sys_writev, "writev" }, /* 121 */ + { 2, 0, sys_osf_settimeofday, "osf_settimeofday" }, /* 122 */ + { 3, TD, sys_fchown, "fchown" }, /* 123 */ + { 2, TD, 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, TD, sys_ftruncate, "ftruncate" }, /* 130 */ + { 2, TD, 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, TD, sys_getdents, "getdents" }, /* 305 */ + { 2, 0, sys_create_module, "create_module" }, /* 306 */ + { 4, 0, sys_init_module, "init_module" }, /* 307 */ + { 2, 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, TD, 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, sys_prctl, "prctl" }, /* 348 */ + { 5, TD, sys_pread, "pread" }, /* 349 */ + { 5, TD, 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, TD, 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, TD|TN, sys_sendfile, "sendfile" }, /* 370 */ + { 3, 0, sys_setresgid, "setresgid" }, /* 371 */ + { 3, 0, sys_getresgid, "getresgid" }, /* 372 */ + { 4, 0, printargs, "dipc" }, /* 373, not implemented */ + { 2, TF, sys_pivotroot, "pivot_root" }, /* 374 */ + { 3, 0, sys_mincore, "mincore" }, /* 375 */ + { 3, 0, printargs, "pciconfig_iobase" }, /* 376 */ + { 3, TD, sys_getdents64, "getdents64" }, /* 377 */ + { 0, 0, printargs, "gettid" }, /* 378 */ + { 4, TD, 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, TD, 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, TD, sys_fremovexattr, "fremovexattr" }, /* 393 */ + { 6, 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, TD, sys_epoll_ctl, "epoll_ctl" }, /* 408 */ + { 4, TD, 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, sys_restart_syscall, "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, TD, 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 */ + { 5, 0, printargs, "add_key" }, /* 439 */ + { 4, 0, printargs, "request_key" }, /* 440 */ + { 5, 0, printargs, "keyctl" }, /* 441 */ + { 3, 0, printargs, "ioprio_set" }, /* 442 */ + { 2, 0, printargs, "ioprio_get" }, /* 443 */ + { 0, TD, printargs, "inotify_init" }, /* 444 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 445 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 446 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 447 */ + { 5, 0, printargs, "kexec_load" }, /* 448 */ + { 4, 0, printargs, "migrate_pages" }, /* 449 */ + { 4, TD|TF, sys_openat, "openat" }, /* 450 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 451 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 452 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 453 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 454 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 455 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 456 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 457 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 458 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 459 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 460 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 461 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 462 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 463 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 464 */ + { 1, TP, sys_unshare, "unshare" }, /* 465 */ + { 2, 0, printargs, "set_robust_list" }, /* 466 */ + { 3, 0, printargs, "get_robust_list" }, /* 467 */ + { 6, TD, printargs, "splice" }, /* 468 */ + { 4, TD, printargs, "sync_file_range" }, /* 469 */ + { 4, TD, printargs, "tee" }, /* 470 */ + { 4, TD, printargs, "vmsplice" }, /* 471 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 472 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 473 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 474 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 475 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 476 */ + { 4, TD, sys_timerfd, "timerfd" }, /* 477 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 478 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 479 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 480 */ + { 2, TD, sys_timerfd_create, "timerfd_create" }, /* 481 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime" }, /* 482 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime" }, /* 483 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 484 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 485 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 486 */ + { 3, TD, sys_dup3, "dup3" }, /* 487 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 488 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 489 */ + { 5, TD, printargs, "preadv" }, /* 490 */ + { 5, TD, printargs, "pwritev" }, /* 491 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 492 */ + { 5, TD, printargs, "perf_event_open" }, /* 493 */
diff --git a/strace-4.5.20/linux/arm/errnoent1.h b/strace-4.5.20/linux/arm/errnoent1.h new file mode 100644 index 0000000..a894827 --- /dev/null +++ b/strace-4.5.20/linux/arm/errnoent1.h
@@ -0,0 +1,2 @@ +/* Our second set comes from the i386 files. */ +#include "../errnoent.h"
diff --git a/strace-4.5.20/linux/arm/ioctlent1.h b/strace-4.5.20/linux/arm/ioctlent1.h new file mode 100644 index 0000000..a44b0ae --- /dev/null +++ b/strace-4.5.20/linux/arm/ioctlent1.h
@@ -0,0 +1,2 @@ +/* Our second set comes from the i386 files. */ +#include "../ioctlent.h"
diff --git a/strace-4.5.20/linux/arm/signalent1.h b/strace-4.5.20/linux/arm/signalent1.h new file mode 100644 index 0000000..5c18d98 --- /dev/null +++ b/strace-4.5.20/linux/arm/signalent1.h
@@ -0,0 +1,2 @@ +/* Our second set comes from the i386 files. */ +#include "../signalent.h"
diff --git a/strace-4.5.20/linux/arm/syscallent.h b/strace-4.5.20/linux/arm/syscallent.h new file mode 100644 index 0000000..688a407 --- /dev/null +++ b/strace-4.5.20/linux/arm/syscallent.h
@@ -0,0 +1,487 @@ +/* + * 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$ + */ + + { 0, 0, sys_restart_syscall, "restart_syscall"}, /* 0 */ + { 1, TP, sys_exit, "exit" }, /* 1 */ + { 0, TP, sys_fork, "fork" }, /* 2 */ + { 3, 0, sys_read, "read" }, /* 3 */ + { 3, 0, sys_write, "write" }, /* 4 */ + { 3, TF, sys_open, "open" }, /* 5 */ + { 1, 0, sys_close, "close" }, /* 6 */ + { 3, 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, "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" }, /* 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 */ + { 5, 0, printargs, "syscall" }, /* 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 */ + { 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 */ + { 3, 0, sys_init_module, "init_module" }, /* 128 */ + { 2, 0, sys_delete_module, "delete_module" }, /* 129 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 131 */ + { 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 */ + { 5, 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, sys_prctl, "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, TD|TN, 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 */ + { 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 */ + { 3, 0, sys_getdents64, "getdents64" }, /* 217 */ + { 2, TF, sys_pivotroot, "pivot_root" }, /* 218 */ + { 3, 0, printargs, "mincore" }, /* 219 */ + { 3, 0, sys_madvise, "madvise" }, /* 220 */ + { 3, 0, sys_fcntl, "fcntl64" }, /* 221 */ + { 5, 0, printargs, "SYS_222" }, /* 222 */ + { 5, 0, printargs, "SYS_223" }, /* 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, TD|TN, sys_sendfile64, "sendfile64" }, /* 239 */ + { 6, 0, sys_futex, "futex" }, /* 240 */ + { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 241 */ + { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 242 */ + { 2, 0, printargs, "io_setup" }, /* 243 */ + { 1, 0, printargs, "io_destroy" }, /* 244 */ + { 5, 0, printargs, "io_getevents" }, /* 245 */ + { 3, 0, printargs, "io_submit" }, /* 246 */ + { 3, 0, printargs, "io_cancel" }, /* 247 */ + { 1, TP, sys_exit, "exit_group" }, /* 248 */ + { 4, 0, printargs, "lookup_dcookie"}, /* 249 */ + { 1, 0, printargs, "epoll_create" }, /* 250 */ + { 4, 0, printargs, "epoll_ctl" }, /* 251 */ + { 4, 0, printargs, "epoll_wait" }, /* 252 */ + { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 253 */ + { 5, 0, printargs, "SYS_254" }, /* 254 */ + { 5, 0, printargs, "SYS_255" }, /* 255 */ + { 1, 0, printargs, "set_tid_address"}, /* 256 */ + { 3, 0, sys_timer_create, "timer_create" }, /* 257 */ + { 4, 0, sys_timer_settime, "timer_settime" }, /* 258 */ + { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 259 */ + { 1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 260 */ + { 1, 0, sys_timer_delete, "timer_delete" }, /* 261 */ + { 2, 0, sys_clock_settime, "clock_settime" }, /* 262 */ + { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 263 */ + { 2, 0, sys_clock_getres, "clock_getres" }, /* 264 */ + { 4, 0, sys_clock_nanosleep, "clock_nanosleep"}, /* 265 */ + { 3, TF, sys_statfs64, "statfs64" }, /* 266 */ + { 3, 0, sys_fstatfs64, "fstatfs64" }, /* 267 */ + { 3, TS, sys_tgkill, "tgkill" }, /* 268 */ + { 2, TF, sys_utimes, "utimes" }, /* 269 */ + { 6, 0, sys_fadvise64_64, "fadvise64_64" }, /* 270 */ + { 5, 0, printargs, "pciconfig_iobase" }, /* 271 */ + { 5, 0, printargs, "pciconfig_read" }, /* 272 */ + { 5, 0, printargs, "pciconfig_write" }, /* 273 */ + { 4, 0, sys_mq_open, "mq_open" }, /* 274 */ + { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 275 */ + { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 276 */ + { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 277 */ + { 2, 0, sys_mq_notify, "mq_notify" }, /* 278 */ + { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 279 */ + { 5, TP, sys_waitid, "waitid" }, /* 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 */ + { 6, TN, sys_sendto, "sendto" }, /* 290 */ + { 4, TN, sys_recv, "recv" }, /* 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 */ + { 3, TN, sys_sendmsg, "sendmsg" }, /* 296 */ + { 3, TN, sys_recvmsg, "recvmsg" }, /* 297 */ + { 4, TI, sys_semop, "semop" }, /* 298 */ + { 4, TI, sys_semget, "semget" }, /* 299 */ + { 4, TI, sys_semctl, "semctl" }, /* 300 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 301 */ + { 4, TI, sys_msgrcv, "msgrcv" }, /* 302 */ + { 4, TI, sys_msgget, "msgget" }, /* 303 */ + { 4, TI, sys_msgctl, "msgctl" }, /* 304 */ + { 4, TI, sys_shmat, "shmat" }, /* 305 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 306 */ + { 4, TI, sys_shmget, "shmget" }, /* 307 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 308 */ + { 5, 0, printargs, "add_key" }, /* 309 */ + { 4, 0, printargs, "request_key" }, /* 310 */ + { 5, 0, printargs, "keyctl" }, /* 311 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 312 */ + { 5, 0, printargs, "vserver" }, /* 313 */ + { 3, 0, printargs, "ioprio_set" }, /* 314 */ + { 2, 0, printargs, "ioprio_get" }, /* 315 */ + { 0, TD, printargs, "inotify_init" }, /* 316 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 317 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 318 */ + { 6, 0, sys_mbind, "mbind" }, /* 319 */ + { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 320 */ + { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 321 */ + { 4, TD|TF, sys_openat, "openat" }, /* 322 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 323 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 324 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 325 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 326 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 327 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 328 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 329 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 330 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 331 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 332 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 333 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 334 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 335 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 336 */ + { 1, TP, sys_unshare, "unshare" }, /* 337 */ + { 2, 0, printargs, "set_robust_list" }, /* 338 */ + { 3, 0, printargs, "get_robust_list" }, /* 339 */ + { 6, TD, printargs, "splice" }, /* 340 */ + { 5, 0, printargs, "SYS_341" }, /* 341 */ + { 4, TD, printargs, "tee" }, /* 342 */ + { 4, TD, printargs, "vmsplice" }, /* 343 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 344 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 345 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 346 */ + { 5, 0, printargs, "kexec_load" }, /* 347 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 348 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 349 */ + { 4, TD, sys_timerfd, "timerfd" }, /* 350 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 351 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 352 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime"}, /* 353 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime"}, /* 354 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 355 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 356 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 357 */ + { 3, TD, sys_dup3, "dup3" }, /* 358 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 359 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 360 */ + { 5, TD, printargs, "preadv" }, /* 361 */ + { 5, TD, printargs, "pwritev" }, /* 362 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 363 */ + { 5, TD, printargs, "perf_event_open"}, /* 364 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 365 */ + { 5, 0, printargs, "SYS_366" }, /* 366 */ + { 5, 0, printargs, "SYS_367" }, /* 367 */ + { 5, 0, printargs, "SYS_368" }, /* 368 */ + { 5, 0, printargs, "SYS_369" }, /* 369 */ + { 5, 0, printargs, "SYS_370" }, /* 370 */ + { 5, 0, printargs, "SYS_371" }, /* 371 */ + { 5, 0, printargs, "SYS_372" }, /* 372 */ + { 5, 0, printargs, "SYS_373" }, /* 373 */ + { 5, 0, printargs, "SYS_374" }, /* 374 */ + { 5, 0, printargs, "SYS_375" }, /* 375 */ + { 5, 0, printargs, "SYS_376" }, /* 376 */ + { 5, 0, printargs, "SYS_377" }, /* 377 */ + { 5, 0, printargs, "SYS_378" }, /* 378 */ + { 5, 0, printargs, "SYS_379" }, /* 379 */ + { 5, 0, printargs, "SYS_380" }, /* 380 */ + { 5, 0, printargs, "SYS_381" }, /* 381 */ + { 5, 0, printargs, "SYS_382" }, /* 382 */ + { 5, 0, printargs, "SYS_383" }, /* 383 */ + { 5, 0, printargs, "SYS_384" }, /* 384 */ + { 5, 0, printargs, "SYS_385" }, /* 385 */ + { 5, 0, printargs, "SYS_386" }, /* 386 */ + { 5, 0, printargs, "SYS_387" }, /* 387 */ + { 5, 0, printargs, "SYS_388" }, /* 388 */ + { 5, 0, printargs, "SYS_389" }, /* 389 */ + { 5, 0, printargs, "SYS_390" }, /* 390 */ + { 5, 0, printargs, "SYS_391" }, /* 391 */ + { 5, 0, printargs, "SYS_392" }, /* 392 */ + { 5, 0, printargs, "SYS_393" }, /* 393 */ + { 5, 0, printargs, "SYS_394" }, /* 394 */ + { 5, 0, printargs, "SYS_395" }, /* 395 */ + { 5, 0, printargs, "SYS_396" }, /* 396 */ + { 5, 0, printargs, "SYS_397" }, /* 397 */ + { 5, 0, printargs, "SYS_398" }, /* 398 */ + { 5, 0, printargs, "SYS_399" }, /* 399 */ + +#ifndef __ARM_EABI__ +#if SYS_socket_subcall != 400 + #error fix me +#endif + { 8, 0, printargs, "socket_subcall"}, /* 400 */ + { 3, TN, sys_socket, "socket" }, /* 401 */ + { 3, TN, sys_bind, "bind" }, /* 402 */ + { 3, TN, sys_connect, "connect" }, /* 403 */ + { 2, TN, sys_listen, "listen" }, /* 404 */ + { 3, TN, sys_accept, "accept" }, /* 405 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 406 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 407 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 408 */ + { 4, TN, sys_send, "send" }, /* 409 */ + { 4, TN, sys_recv, "recv" }, /* 410 */ + { 6, TN, sys_sendto, "sendto" }, /* 411 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 412 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 413 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 414 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 415 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 416 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 417 */ + { 4, TN, sys_accept4, "accept4" }, /* 418 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 419 */ + +#if SYS_ipc_subcall != 420 + #error fix me +#endif + { 4, 0, printargs, "ipc_subcall" }, /* 420 */ + { 4, TI, sys_semop, "semop" }, /* 421 */ + { 4, TI, sys_semget, "semget" }, /* 422 */ + { 4, TI, sys_semctl, "semctl" }, /* 423 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 424 */ + { 4, 0, printargs, "ipc_subcall" }, /* 425 */ + { 4, 0, printargs, "ipc_subcall" }, /* 426 */ + { 4, 0, printargs, "ipc_subcall" }, /* 427 */ + { 4, 0, printargs, "ipc_subcall" }, /* 428 */ + { 4, 0, printargs, "ipc_subcall" }, /* 429 */ + { 4, 0, printargs, "ipc_subcall" }, /* 430 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 431 */ + { 4, TI, sys_msgrcv, "msgrcv" }, /* 432 */ + { 4, TI, sys_msgget, "msgget" }, /* 433 */ + { 4, TI, sys_msgctl, "msgctl" }, /* 434 */ + { 4, 0, printargs, "ipc_subcall" }, /* 435 */ + { 4, 0, printargs, "ipc_subcall" }, /* 436 */ + { 4, 0, printargs, "ipc_subcall" }, /* 437 */ + { 4, 0, printargs, "ipc_subcall" }, /* 438 */ + { 4, 0, printargs, "ipc_subcall" }, /* 439 */ + { 4, 0, printargs, "ipc_subcall" }, /* 440 */ + { 4, TI, sys_shmat, "shmat" }, /* 441 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 442 */ + { 4, TI, sys_shmget, "shmget" }, /* 443 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 444 */ +#endif
diff --git a/strace-4.5.20/linux/arm/syscallent1.h b/strace-4.5.20/linux/arm/syscallent1.h new file mode 100644 index 0000000..0978e9f --- /dev/null +++ b/strace-4.5.20/linux/arm/syscallent1.h
@@ -0,0 +1,7 @@ +/* ARM specific syscalls */ + { 5, 0, printargs, "SYS_0" }, /* 0 */ + { 5, 0, printargs, "breakpoint" }, /* 1 */ + { 5, 0, printargs, "cacheflush" }, /* 2 */ + { 5, 0, printargs, "usr26" }, /* 3 */ + { 5, 0, printargs, "usr32" }, /* 4 */ + { 5, 0, printargs, "set_tls" }, /* 5 */
diff --git a/strace-4.5.20/linux/avr32/syscallent.h b/strace-4.5.20/linux/avr32/syscallent.h new file mode 100644 index 0000000..57c1336 --- /dev/null +++ b/strace-4.5.20/linux/avr32/syscallent.h
@@ -0,0 +1,311 @@ +/* + * Copyright (c) 2004-2009 Atmel Corporation + * 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$ + */ + + { 0, 0, sys_setup, "setup" }, /* 0 */ + { 1, TP, sys_exit, "_exit" }, /* 1 */ + { 0, TP, sys_fork, "fork" }, /* 2 */ + { 3, TD, sys_read, "read" }, /* 3 */ + { 3, TD, sys_write, "write" }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TD, sys_close, "close" }, /* 6 */ + { 1, 0, sys_umask, "umask" }, /* 7 */ + { 2, TD|TF, sys_creat, "creat" }, /* 8 */ + { 2, TF, sys_link, "link" }, /* 9 */ + { 1, TF, sys_unlink, "unlink" }, /* 10 */ + { 3, TF|TP, sys_execve, "execve" }, /* 11 */ + { 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, "chown" }, /* 16 */ + { 3, TF, sys_chown, "lchown" }, /* 17 */ + { 3, TD, sys_lseek, "lseek" }, /* 18 */ + { 5, TD, sys_llseek, "_llseek" }, /* 19 */ + { 0, 0, sys_getpid, "getpid" }, /* 20 */ + { 5, TF, sys_mount, "mount" }, /* 21 */ + { 2, TF, sys_umount, "umount" }, /* 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 */ + { 0, TS, sys_pause, "pause" }, /* 28 */ + { 2, TF, sys_utime, "utime" }, /* 29 */ + { 2, TF, sys_stat, "stat" }, /* 30 */ + { 2, TD, sys_fstat, "fstat" }, /* 31 */ + { 2, TF, sys_lstat, "lstat" }, /* 32 */ + { 2, TF, sys_access, "access" }, /* 33 */ + { 1, TF, sys_chroot, "chroot" }, /* 34 */ + { 0, 0, sys_sync, "sync" }, /* 35 */ + { 1, TD, sys_fsync, "fsync" }, /* 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, TD, sys_dup, "dup" }, /* 41 */ + { 1, TD, sys_pipe, "pipe" }, /* 42 */ + { 1, 0, sys_times, "times" }, /* 43 */ + { 5, TP, sys_clone, "clone" }, /* 44 */ + { 1, 0, sys_brk, "brk" }, /* 45 */ + { 1, 0, sys_setgid, "setgid" }, /* 46 */ + { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 2, TF, sys_getcwd, "getcwd" }, /* 48 */ + { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ + { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 1, TF, sys_acct, "acct" }, /* 51 */ + { 1, 0, sys_setfsuid, "setfsuid" }, /* 52 */ + { 1, 0, sys_setfsgid, "setfsgid" }, /* 53 */ + { 3, TD, sys_ioctl, "ioctl" }, /* 54 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 55 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 56 */ + { 5, 0, sys_mremap, "mremap" }, /* 57 */ + { 3, 0, sys_setresuid, "setresuid" }, /* 58 */ + { 3, 0, sys_getresuid, "getresuid" }, /* 59 */ + { 2, 0, sys_setreuid, "setreuid" }, /* 60 */ + { 2, 0, sys_setregid, "setregid" }, /* 61 */ + { 2, 0, sys_ustat, "ustat" }, /* 62 */ + { 2, TD, sys_dup2, "dup2" }, /* 63 */ + { 0, 0, sys_getppid, "getppid" }, /* 64 */ + { 0, 0, sys_getpgrp, "getpgrp" }, /* 65 */ + { 0, 0, sys_setsid, "setsid" }, /* 66 */ + { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 67 */ + { 1, TS, printargs, "rt_sigreturn" }, /* 68 */ + { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 69 */ + { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 70 */ + { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"}, /* 71 */ + { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"}, /* 72 */ + { 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 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 */ + { 5, TD, sys_select, "select" }, /* 82 */ + { 2, TF, sys_symlink, "symlink" }, /* 83 */ + { 1, TD, sys_fchdir, "fchdir" }, /* 84 */ + { 3, TF, sys_readlink, "readlink" }, /* 85 */ + { 5, TD, sys_pread, "pread" }, /* 86 */ + { 5, TD, sys_pwrite, "pwrite" }, /* 87 */ + { 1, TF, sys_swapon, "swapon" }, /* 88 */ + { 3, 0, sys_reboot, "reboot" }, /* 89 */ + { 6, 0, sys_mmap, "mmap" }, /* 90 */ + { 2, 0, sys_munmap, "munmap" }, /* 91 */ + { 2, TF, sys_truncate, "truncate" }, /* 92 */ + { 2, TD, sys_ftruncate, "ftruncate" }, /* 93 */ + { 2, TD, sys_fchmod, "fchmod" }, /* 94 */ + { 3, TD, sys_fchown, "fchown" }, /* 95 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 96 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 97 */ + { 4, TP, sys_wait4, "wait4" }, /* 98 */ + { 2, TF, sys_statfs, "statfs" }, /* 99 */ + { 2, TD, sys_fstatfs, "fstatfs" }, /* 100 */ + { 0, 0, sys_vhangup, "vhangup" }, /* 101 */ + { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 102 */ + { 3, 0, sys_syslog, "syslog" }, /* 103 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 104 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 105 */ + { 1, 0, sys_swapoff, "swapoff" }, /* 106 */ + { 1, 0, sys_sysinfo, "sysinfo" }, /* 107 */ + { 6, 0, sys_ipc, "ipc" }, /* 108 */ + { 4, TD|TN, sys_sendfile, "sendfile" }, /* 109 */ + { 2, 0, sys_setdomainname, "setdomainname" }, /* 110 */ + { 1, 0, sys_uname, "uname" }, /* 111 */ + { 1, 0, sys_adjtimex, "adjtimex" }, /* 112 */ + { 3, 0, sys_mprotect, "mprotect" }, /* 113 */ + { 0, TP, sys_vfork, "vfork" }, /* 114 */ + { 3, 0, sys_init_module, "init_module" }, /* 115 */ + { 2, 0, sys_delete_module, "delete_module" }, /* 116 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 117 */ + { 1, 0, sys_getpgid, "getpgid" }, /* 118 */ + { 0, 0, sys_bdflush, "bdflush" }, /* 119 */ + { 3, 0, sys_sysfs, "sysfs" }, /* 120 */ + { 1, 0, sys_personality, "personality" }, /* 121 */ + { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 122 */ + { 3, TD, sys_getdents, "getdents" }, /* 123 */ + { 2, TD, sys_flock, "flock" }, /* 124 */ + { 3, 0, sys_msync, "msync" }, /* 125 */ + { 3, TD, sys_readv, "readv" }, /* 126 */ + { 3, TD, sys_writev, "writev" }, /* 127 */ + { 1, 0, sys_getsid, "getsid" }, /* 128 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 129 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 130 */ + { 2, 0, sys_mlock, "mlock" }, /* 131 */ + { 2, 0, sys_munlock, "munlock" }, /* 132 */ + { 2, 0, sys_mlockall, "mlockall" }, /* 133 */ + { 0, 0, sys_munlockall, "munlockall" }, /* 134 */ + { 0, 0, sys_sched_setparam, "sched_setparam"}, /* 135 */ + { 2, 0, sys_sched_getparam, "sched_getparam"}, /* 136 */ + { 3, 0, sys_sched_setscheduler, "sched_setscheduler"}, /* 137 */ + { 1, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 138 */ + { 0, 0, sys_sched_yield, "sched_yield"}, /* 139 */ + { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 140 */ + { 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 141 */ + { 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 142 */ + { 2, 0, sys_nanosleep, "nanosleep" }, /* 143 */ + { 3, TD, sys_poll, "poll" }, /* 144 */ + { 3, 0, printargs, "nfsservctl" }, /* 145 */ + { 3, 0, sys_setresgid, "setresgid" }, /* 146 */ + { 3, 0, sys_getresgid, "getresgid" }, /* 147 */ + { 5, 0, sys_prctl, "prctl" }, /* 148 */ + { 3, TN, sys_socket, "socket" }, /* 149 */ + { 3, TN, sys_bind, "bind" }, /* 150 */ + { 3, TN, sys_connect, "connect" }, /* 151 */ + { 2, TN, sys_listen, "listen" }, /* 152 */ + { 3, TN, sys_accept, "accept" }, /* 153 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 154 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 155 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 156 */ + { 4, TN, sys_send, "send" }, /* 157 */ + { 4, TN, sys_recv, "recv" }, /* 158 */ + { 6, TN, sys_sendto, "sendto" }, /* 159 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 160 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 161 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 162 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 163 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 164 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 165 */ + { 3, TF, sys_truncate64, "truncate64" }, /* 166 */ + { 3, TD, sys_ftruncate64, "ftruncate64" }, /* 167 */ + { 2, TF, sys_stat64, "stat64" }, /* 168 */ + { 2, TF, sys_lstat64, "lstat64" }, /* 169 */ + { 2, TD, sys_fstat64, "fstat64" }, /* 170 */ + { 2, TF, sys_pivotroot, "pivot_root" }, /* 171 */ + { 3, 0, printargs, "mincore" }, /* 172 */ + { 3, 0, sys_madvise, "madvise" }, /* 173 */ + { 3, TD, sys_getdents64, "getdents64" }, /* 174 */ + { 3, TD, sys_fcntl, "fcntl64" }, /* 175 */ + { 0, 0, printargs, "gettid" }, /* 176 */ + { 4, TD, sys_readahead, "readahead" }, /* 177 */ + { 5, TF, sys_setxattr, "setxattr" }, /* 178 */ + { 5, TF, sys_setxattr, "lsetxattr" }, /* 179 */ + { 5, TD, sys_fsetxattr, "fsetxattr" }, /* 180 */ + { 4, TF, sys_getxattr, "getxattr" }, /* 181 */ + { 4, TF, sys_getxattr, "lgetxattr" }, /* 182 */ + { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 183 */ + { 3, TF, sys_listxattr, "listxattr" }, /* 184 */ + { 3, TF, sys_listxattr, "llistxattr" }, /* 185 */ + { 3, 0, sys_flistxattr, "flistxattr" }, /* 186 */ + { 2, TF, sys_removexattr, "removexattr" }, /* 187 */ + { 2, TF, sys_removexattr, "lremovexattr" }, /* 188 */ + { 2, TD, sys_fremovexattr, "fremovexattr" }, /* 189 */ + { 2, 0, sys_kill, "tkill" }, /* 190 */ + { 4, TD|TN, sys_sendfile64, "sendfile64" }, /* 191 */ + { 6, 0, sys_futex, "futex" }, /* 192 */ + { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 193 */ + { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 194 */ + { 2, 0, sys_capget, "capget" }, /* 195 */ + { 2, 0, sys_capset, "capset" }, /* 196 */ + { 2, 0, sys_io_setup, "io_setup" }, /* 197 */ + { 1, 0, sys_io_destroy, "io_destroy" }, /* 198 */ + { 5, 0, sys_io_getevents, "io_getevents" }, /* 199 */ + { 3, 0, sys_io_submit, "io_submit" }, /* 200 */ + { 3, 0, sys_io_cancel, "io_cancel" }, /* 201 */ + { 5, 0, sys_fadvise64, "fadvise64" }, /* 202 */ + { 1, TP, sys_exit, "exit_group" }, /* 203 */ + { 4, 0, printargs, "lookup_dcookie"}, /* 204 */ + { 1, 0, sys_epoll_create, "epoll_create" }, /* 205 */ + { 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 206 */ + { 4, TD, sys_epoll_wait, "epoll_wait" }, /* 207 */ + { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 208 */ + { 1, 0, printargs, "set_tid_address"}, /* 209 */ + { 3, 0, sys_timer_create, "timer_create" }, /* 210 */ + { 4, 0, sys_timer_settime, "timer_settime" }, /* 211 */ + { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 212 */ + { 1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 213 */ + { 1, 0, sys_timer_delete, "timer_delete" }, /* 214 */ + { 2, 0, sys_clock_settime, "clock_settime" }, /* 215 */ + { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 216 */ + { 2, 0, sys_clock_getres, "clock_getres" }, /* 217 */ + { 4, 0, sys_clock_nanosleep, "clock_nanosleep"}, /* 218 */ + { 3, TF, sys_statfs64, "statfs64" }, /* 219 */ + { 3, TD, sys_fstatfs64, "fstatfs64" }, /* 220 */ + { 3, TS, sys_tgkill, "tgkill" }, /* 221 */ + { 5, 0, printargs, "SYS_222" }, /* 222 */ + { 2, TF, sys_utimes, "utimes" }, /* 223 */ + { 6, 0, sys_fadvise64_64, "fadvise64_64" }, /* 224 */ + { 3, 0, printargs, "cacheflush" }, /* 225 */ + { 5, 0, printargs, "vserver" }, /* 226 */ + { 4, 0, sys_mq_open, "mq_open" }, /* 227 */ + { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 228 */ + { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 229 */ + { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 230 */ + { 2, 0, sys_mq_notify, "mq_notify" }, /* 231 */ + { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 232 */ + { 5, 0, printargs, "kexec_load" }, /* 233 */ + { 5, TP, sys_waitid, "waitid" }, /* 234 */ + { 5, 0, printargs, "add_key" }, /* 235 */ + { 4, 0, printargs, "request_key" }, /* 236 */ + { 5, 0, printargs, "keyctl" }, /* 237 */ + { 3, 0, printargs, "ioprio_set" }, /* 238 */ + { 2, 0, printargs, "ioprio_get" }, /* 239 */ + { 0, 0, printargs, "inotify_init" }, /* 240 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 241 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 242 */ + { 4, TD|TF, sys_openat, "openat" }, /* 243 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 244 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 245 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 246 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 247 */ + { 4, TD|TF, printargs, "fstatat64" }, /* 248 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 249 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 250 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 251 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 252 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 253 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 254 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 255 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 256 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 257 */ + { 1, TD, sys_unshare, "unshare" }, /* 258 */ + { 2, 0, printargs, "set_robust_list" }, /* 259 */ + { 3, 0, printargs, "get_robust_list" }, /* 260 */ + { 6, TD, printargs, "splice" }, /* 261 */ + { 4, TD, printargs, "sync_file_range" }, /* 262 */ + { 4, TD, printargs, "tee" }, /* 263 */ + { 4, TD, printargs, "vmsplice" }, /* 264 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 265 */ + { 4, TI, sys_msgget, "msgget" }, /* 266 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 267 */ + { 5, TI, sys_msgrcv, "msgrcv" }, /* 268 */ + { 3, TI, sys_msgctl, "msgctl" }, /* 269 */ + { 4, TI, sys_semget, "semget" }, /* 270 */ + { 4, TI, sys_semop, "semop" }, /* 271 */ + { 4, TI, sys_semctl, "semctl" }, /* 272 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 273 */ + { 4, TI, sys_shmat, "shmat" }, /* 274 */ + { 4, TI, sys_shmget, "shmget" }, /* 275 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 276 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 277 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 278 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 279 */ + { 2, TD, sys_timerfd, "timerfd_create" }, /* 280 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 281 */
diff --git a/strace-4.5.20/linux/bfin/ioctlent.h b/strace-4.5.20/linux/bfin/ioctlent.h new file mode 100644 index 0000000..4b78fdf --- /dev/null +++ b/strace-4.5.20/linux/bfin/ioctlent.h
@@ -0,0 +1,1949 @@ + /* 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/raid/md_u.h", "RAID_VERSION", 0x910}, + {"linux/raid/md_u.h", "GET_ARRAY_INFO", 0x911}, + {"linux/raid/md_u.h", "GET_DISK_INFO", 0x912}, + {"linux/raid/md_u.h", "PRINT_RAID_DEBUG", 0x913}, + {"linux/raid/md_u.h", "RAID_AUTORUN", 0x914}, + {"linux/raid/md_u.h", "GET_BITMAP_FILE", 0x915}, + {"linux/raid/md_u.h", "CLEAR_ARRAY", 0x920}, + {"linux/raid/md_u.h", "ADD_NEW_DISK", 0x921}, + {"linux/raid/md_u.h", "HOT_REMOVE_DISK", 0x922}, + {"linux/raid/md_u.h", "SET_ARRAY_INFO", 0x923}, + {"linux/raid/md_u.h", "SET_DISK_INFO", 0x924}, + {"linux/raid/md_u.h", "WRITE_RAID_INFO", 0x925}, + {"linux/raid/md_u.h", "UNPROTECT_ARRAY", 0x926}, + {"linux/raid/md_u.h", "PROTECT_ARRAY", 0x927}, + {"linux/raid/md_u.h", "HOT_ADD_DISK", 0x928}, + {"linux/raid/md_u.h", "SET_DISK_FAULTY", 0x929}, + {"linux/raid/md_u.h", "HOT_GENERATE_ERROR", 0x92a}, + {"linux/raid/md_u.h", "SET_BITMAP_FILE", 0x92b}, + {"linux/raid/md_u.h", "RUN_ARRAY", 0x930}, + {"linux/raid/md_u.h", "STOP_ARRAY", 0x932}, + {"linux/raid/md_u.h", "STOP_ARRAY_RO", 0x933}, + {"linux/raid/md_u.h", "RESTART_ARRAY_RW", 0x934}, + {"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}, + {"linux/fs.h", "BLKTRACESETUP", 0x1273}, + {"linux/fs.h", "BLKTRACESTART", 0x1274}, + {"linux/fs.h", "BLKTRACESTOP", 0x1275}, + {"linux/fs.h", "BLKTRACETEARDOWN", 0x1276}, + {"linux/fs.h", "BLKDISCARD", 0x1277}, + {"rdma/ib_user_mad.h", "IB_USER_MAD_REGISTER_AGENT", 0x1b01}, + {"rdma/ib_user_mad.h", "IB_USER_MAD_UNREGISTER_AGENT", 0x1b02}, + {"rdma/ib_user_mad.h", "IB_USER_MAD_ENABLE_PKEY", 0x1b03}, + {"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/firewire-cdev.h", "FW_CDEV_IOC_GET_INFO", 0x2300}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_SEND_REQUEST", 0x2301}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_ALLOCATE", 0x2302}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_DEALLOCATE", 0x2303}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_SEND_RESPONSE", 0x2304}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_INITIATE_BUS_RESET", 0x2305}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_ADD_DESCRIPTOR", 0x2306}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_REMOVE_DESCRIPTOR", 0x2307}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_CREATE_ISO_CONTEXT", 0x2308}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_QUEUE_ISO", 0x2309}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_START_ISO", 0x230a}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_STOP_ISO", 0x230b}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_GET_CYCLE_TIMER", 0x230c}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE", 0x230d}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE", 0x230e}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE", 0x230f}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE", 0x2310}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_GET_SPEED", 0x2311}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_SEND_BROADCAST_REQUEST", 0x2312}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_SEND_STREAM_PACKET", 0x2313}, + {"linux/perf_counter.h", "PERF_COUNTER_IOC_ENABLE", 0x2400}, + {"linux/perf_counter.h", "PERF_COUNTER_IOC_DISABLE", 0x2401}, + {"linux/perf_counter.h", "PERF_COUNTER_IOC_REFRESH", 0x2402}, + {"linux/perf_counter.h", "PERF_COUNTER_IOC_RESET", 0x2403}, + {"linux/perf_counter.h", "PERF_COUNTER_IOC_PERIOD", 0x2404}, + {"linux/i2o.h", "BLKI2OGRSTRAT", 0x3201}, + {"linux/i2o.h", "BLKI2OGWSTRAT", 0x3202}, + {"linux/i2o.h", "BLKI2OSRSTRAT", 0x3203}, + {"linux/i2o.h", "BLKI2OSWSTRAT", 0x3204}, + {"linux/suspend_ioctls.h", "SNAPSHOT_FREEZE", 0x3301}, + {"linux/suspend_ioctls.h", "SNAPSHOT_UNFREEZE", 0x3302}, + {"linux/suspend_ioctls.h", "SNAPSHOT_ATOMIC_RESTORE", 0x3304}, + {"linux/suspend_ioctls.h", "SNAPSHOT_FREE", 0x3305}, + {"linux/suspend_ioctls.h", "SNAPSHOT_FREE_SWAP_PAGES", 0x3309}, + {"linux/suspend_ioctls.h", "SNAPSHOT_S2RAM", 0x330b}, + {"linux/suspend_ioctls.h", "SNAPSHOT_SET_SWAP_AREA", 0x330d}, + {"linux/suspend_ioctls.h", "SNAPSHOT_GET_IMAGE_SIZE", 0x330e}, + {"linux/suspend_ioctls.h", "SNAPSHOT_PLATFORM_SUPPORT", 0x330f}, + {"linux/suspend_ioctls.h", "SNAPSHOT_POWER_OFF", 0x3310}, + {"linux/suspend_ioctls.h", "SNAPSHOT_CREATE_IMAGE", 0x3311}, + {"linux/suspend_ioctls.h", "SNAPSHOT_PREF_IMAGE_SIZE", 0x3312}, + {"linux/suspend_ioctls.h", "SNAPSHOT_AVAIL_SWAP_SIZE", 0x3313}, + {"linux/suspend_ioctls.h", "SNAPSHOT_ALLOC_SWAP_PAGE", 0x3314}, + {"linux/radeonfb.h", "FBIO_RADEON_GET_MIRROR", 0x4003}, + {"linux/radeonfb.h", "FBIO_RADEON_SET_MIRROR", 0x4004}, + {"linux/agpgart.h", "AGPIOC_INFO", 0x4100}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_PVERSION", 0x4100}, + {"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101}, + {"linux/apm_bios.h", "APM_IOC_STANDBY", 0x4101}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_INFO", 0x4101}, + {"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102}, + {"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x4102}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_TSTAMP", 0x4102}, + {"linux/agpgart.h", "AGPIOC_SETUP", 0x4103}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_TTSTAMP", 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/agpgart.h", "AGPIOC_CHIPSET_FLUSH", 0x410a}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_HW_REFINE", 0x4110}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_HW_PARAMS", 0x4111}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_HW_FREE", 0x4112}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_SW_PARAMS", 0x4113}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_STATUS", 0x4120}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_DELAY", 0x4121}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_HWSYNC", 0x4122}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_SYNC_PTR", 0x4123}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_CHANNEL_INFO", 0x4132}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_PREPARE", 0x4140}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_RESET", 0x4141}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_START", 0x4142}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_DROP", 0x4143}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_DRAIN", 0x4144}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_PAUSE", 0x4145}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_REWIND", 0x4146}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_RESUME", 0x4147}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_XRUN", 0x4148}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_FORWARD", 0x4149}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_WRITEI_FRAMES", 0x4150}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_READI_FRAMES", 0x4151}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_WRITEN_FRAMES", 0x4152}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_READN_FRAMES", 0x4153}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_LINK", 0x4160}, + {"sound/asound.h", "SNDRV_PCM_IOCTL_UNLINK", 0x4161}, + {"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_PASSTHRU32", 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/cciss_ioctl.h", "CCISS_BIG_PASSTHRU32", 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", "EVIOCSREP", 0x4503}, + {"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/ivtvfb.h", "FBIO_WAITFORVSYNC", 0x4620}, + {"linux/matroxfb.h", "FBIO_WAITFORVSYNC", 0x4620}, + {"linux/arcfb.h", "FBIO_WAITEVENT", 0x4688}, + {"linux/arcfb.h", "FBIO_GETCONTROL2", 0x4689}, + {"video/sstfb.h", "SSTFB_GET_VGAPASS", 0x46dd}, + {"video/sstfb.h", "SSTFB_SET_VGAPASS", 0x46dd}, + {"linux/gigaset_dev.h", "GIGASET_REDIR", 0x4700}, + {"linux/gigaset_dev.h", "GIGASET_CONFIG", 0x4701}, + {"linux/gigaset_dev.h", "GIGASET_BRKCHARS", 0x4702}, + {"linux/gigaset_dev.h", "GIGASET_VERSION", 0x4703}, + {"sound/asound.h", "SNDRV_HWDEP_IOCTL_PVERSION", 0x4800}, + {"linux/hidraw.h", "HIDIOCGRDESCSIZE", 0x4801}, + {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801}, + {"sound/asound.h", "SNDRV_HWDEP_IOCTL_INFO", 0x4801}, + {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802}, + {"linux/hidraw.h", "HIDIOCGRDESC", 0x4802}, + {"sound/asound.h", "SNDRV_HWDEP_IOCTL_DSP_STATUS", 0x4802}, + {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803}, + {"linux/hidraw.h", "HIDIOCGRAWINFO", 0x4803}, + {"sound/asound.h", "SNDRV_HWDEP_IOCTL_DSP_LOAD", 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}, + {"sound/hda_hwdep.h", "HDA_IOCTL_PVERSION", 0x4810}, + {"linux/hiddev.h", "HIDIOCGCOLLECTIONINDEX", 0x4810}, + {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_INFO", 0x4810}, + {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_INFO", 0x4810}, + {"sound/hda_hwdep.h", "HDA_IOCTL_VERB_WRITE", 0x4811}, + {"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/hda_hwdep.h", "HDA_IOCTL_GET_WCAP", 0x4812}, + {"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/asound_fm.h", "SNDRV_DM_FM_IOCTL_CLEAR_PATCHES", 0x4840}, + {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_PVERSION", 0x4840}, + {"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/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_VERSION", 0x4843}, + {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_GET_VERSION", 0x4843}, + {"sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_MIXER", 0x4844}, + {"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/sfnt_info.h", "SNDRV_EMUX_IOCTL_VERSION", 0x4880}, + {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_CONTINUE", 0x4881}, + {"sound/sfnt_info.h", "SNDRV_EMUX_IOCTL_LOAD_PATCH", 0x4881}, + {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER", 0x4882}, + {"sound/sfnt_info.h", "SNDRV_EMUX_IOCTL_RESET_SAMPLES", 0x4882}, + {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_SINGLE_STEP", 0x4883}, + {"sound/sfnt_info.h", "SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES", 0x4883}, + {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_DBG_READ", 0x4884}, + {"sound/sfnt_info.h", "SNDRV_EMUX_IOCTL_MEM_AVAIL", 0x4884}, + {"sound/sfnt_info.h", "SNDRV_EMUX_IOCTL_MISC_MODE", 0x4884}, + {"net/bluetooth/hci.h", "HCIDEVUP", 0x48c9}, + {"net/bluetooth/hci.h", "HCIDEVDOWN", 0x48ca}, + {"net/bluetooth/hci.h", "HCIDEVRESET", 0x48cb}, + {"net/bluetooth/hci.h", "HCIDEVRESTAT", 0x48cc}, + {"net/bluetooth/hci.h", "HCIGETDEVLIST", 0x48d2}, + {"net/bluetooth/hci.h", "HCIGETDEVINFO", 0x48d3}, + {"net/bluetooth/hci.h", "HCIGETCONNLIST", 0x48d4}, + {"net/bluetooth/hci.h", "HCIGETCONNINFO", 0x48d5}, + {"net/bluetooth/hci.h", "HCISETRAW", 0x48dc}, + {"net/bluetooth/hci.h", "HCISETSCAN", 0x48dd}, + {"net/bluetooth/hci.h", "HCISETAUTH", 0x48de}, + {"net/bluetooth/hci.h", "HCISETENCRYPT", 0x48df}, + {"net/bluetooth/hci.h", "HCISETPTYPE", 0x48e0}, + {"net/bluetooth/hci.h", "HCISETLINKPOL", 0x48e1}, + {"net/bluetooth/hci.h", "HCISETLINKMODE", 0x48e2}, + {"net/bluetooth/hci.h", "HCISETACLMTU", 0x48e3}, + {"net/bluetooth/hci.h", "HCISETSCOMTU", 0x48e4}, + {"net/bluetooth/hci.h", "HCISETSECMGR", 0x48e6}, + {"net/bluetooth/hci.h", "HCIINQUIRY", 0x48f0}, + {"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/mISDNif.h", "IMADDTIMER", 0x4940}, + {"linux/mISDNif.h", "IMDELTIMER", 0x4941}, + {"linux/mISDNif.h", "IMGETVERSION", 0x4942}, + {"linux/mISDNif.h", "IMGETCOUNT", 0x4943}, + {"linux/mISDNif.h", "IMGETDEVINFO", 0x4944}, + {"linux/mISDNif.h", "IMCTRLREQ", 0x4945}, + {"linux/mISDNif.h", "IMCLEAR_L2", 0x4946}, + {"linux/mISDNif.h", "IMSETDEVNAME", 0x4947}, + {"linux/mISDNif.h", "IMHOLD_L1", 0x4948}, + {"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/kd.h", "KDGKBDIACRUC", 0x4bfa}, + {"linux/kd.h", "KDSKBDIACRUC", 0x4bfb}, + {"linux/usb/vstusb.h", "IOCTL_VSTUSB_SEND_PIPE", 0x4c20}, + {"linux/usb/vstusb.h", "IOCTL_VSTUSB_RECV_PIPE", 0x4c21}, + {"linux/usb/vstusb.h", "IOCTL_VSTUSB_CONFIG_RW", 0x4c22}, + {"mtd/mtd-abi.h", "MEMGETINFO", 0x4d01}, + {"mtd/mtd-abi.h", "MEMERASE", 0x4d02}, + {"mtd/mtd-abi.h", "MEMWRITEOOB", 0x4d03}, + {"mtd/mtd-abi.h", "MEMREADOOB", 0x4d04}, + {"mtd/mtd-abi.h", "MEMLOCK", 0x4d05}, + {"mtd/mtd-abi.h", "MEMUNLOCK", 0x4d06}, + {"mtd/mtd-abi.h", "MEMGETREGIONCOUNT", 0x4d07}, + {"mtd/mtd-abi.h", "MEMGETREGIONINFO", 0x4d08}, + {"mtd/mtd-abi.h", "MEMSETOOBSEL", 0x4d09}, + {"mtd/mtd-abi.h", "MEMGETOOBSEL", 0x4d0a}, + {"mtd/mtd-abi.h", "MEMGETBADBLOCK", 0x4d0b}, + {"mtd/mtd-abi.h", "MEMSETBADBLOCK", 0x4d0c}, + {"mtd/mtd-abi.h", "OTPSELECT", 0x4d0d}, + {"mtd/mtd-abi.h", "OTPGETREGIONCOUNT", 0x4d0e}, + {"mtd/mtd-abi.h", "OTPGETREGIONINFO", 0x4d0f}, + {"mtd/mtd-abi.h", "OTPLOCK", 0x4d10}, + {"mtd/mtd-abi.h", "ECCGETLAYOUT", 0x4d11}, + {"mtd/mtd-abi.h", "ECCGETSTATS", 0x4d12}, + {"mtd/mtd-abi.h", "MTDFILEMODE", 0x4d13}, + {"mtd/mtd-abi.h", "MEMERASE64", 0x4d14}, + {"mtd/mtd-abi.h", "MEMWRITEOOB64", 0x4d15}, + {"mtd/mtd-abi.h", "MEMREADOOB64", 0x4d16}, + {"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/ticable.h", "IOCTL_TIUSB_GET_MAXPS", 0x4e23}, + {"linux/ticable.h", "IOCTL_TIUSB_GET_DEVID", 0x4e24}, + {"mtd/ubi-user.h", "UBI_IOCVOLUP", 0x4f00}, + {"mtd/ubi-user.h", "UBI_IOCEBER", 0x4f01}, + {"mtd/ubi-user.h", "UBI_IOCEBCH", 0x4f02}, + {"mtd/ubi-user.h", "UBI_IOCEBMAP", 0x4f03}, + {"mtd/ubi-user.h", "UBI_IOCEBUNMAP", 0x4f04}, + {"mtd/ubi-user.h", "UBI_IOCEBISMAP", 0x4f05}, + {"mtd/ubi-user.h", "UBI_IOCSETPROP", 0x4f06}, + {"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x5000}, + {"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x5001}, + {"asm/bfin_sport.h", "SPORT_IOC_CONFIG", 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}, + {"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/rfkill.h", "RFKILL_IOCTL_NOINPUT", 0x5201}, + {"media/rds.h", "RDS_CMD_OPEN", 0x5201}, + {"linux/random.h", "RNDADDTOENTCNT", 0x5201}, + {"media/rds.h", "RDS_CMD_CLOSE", 0x5202}, + {"linux/random.h", "RNDGETPOOL", 0x5202}, + {"media/rds.h", "RDS_CMD_READ", 0x5203}, + {"linux/random.h", "RNDADDENTROPY", 0x5203}, + {"media/rds.h", "RDS_CMD_POLL", 0x5204}, + {"linux/random.h", "RNDZAPENTCNT", 0x5204}, + {"linux/random.h", "RNDCLEARPOOL", 0x5206}, + {"net/bluetooth/rfcomm.h", "RFCOMMCREATEDEV", 0x52c8}, + {"net/bluetooth/rfcomm.h", "RFCOMMRELEASEDEV", 0x52c9}, + {"net/bluetooth/rfcomm.h", "RFCOMMGETDEVLIST", 0x52d2}, + {"net/bluetooth/rfcomm.h", "RFCOMMGETDEVINFO", 0x52d3}, + {"net/bluetooth/rfcomm.h", "RFCOMMSTEALDLC", 0x52dc}, + {"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_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}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_PVERSION", 0x5400}, + {"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0x5401}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_NEXT_DEVICE", 0x5401}, + {"asm/ioctls.h", "TCGETS", 0x5401}, + {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD", 0x5402}, + {"asm/ioctls.h", "TCSETS", 0x5402}, + {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_GINFO", 0x5403}, + {"asm/ioctls.h", "TCSETSW", 0x5403}, + {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_GPARAMS", 0x5404}, + {"asm/ioctls.h", "TCSETSF", 0x5404}, + {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_GSTATUS", 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}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_SELECT", 0x5410}, + {"asm/ioctls.h", "TIOCSPGRP", 0x5410}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_INFO", 0x5411}, + {"asm/ioctls.h", "TIOCOUTQ", 0x5411}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_PARAMS", 0x5412}, + {"asm/ioctls.h", "TIOCSTI", 0x5412}, + {"asm/ioctls.h", "TIOCGWINSZ", 0x5413}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_STATUS", 0x5414}, + {"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", "TCGETS2", 0x542a}, + {"asm/ioctls.h", "TCSETS2", 0x542b}, + {"asm/ioctls.h", "TCSETSW2", 0x542c}, + {"asm/ioctls.h", "TCSETSF2", 0x542d}, + {"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-generic/ioctls.h", "TCGETS2", 0x542a}, + {"asm-generic/ioctls.h", "TCSETS2", 0x542b}, + {"asm-generic/ioctls.h", "TCSETSW2", 0x542c}, + {"asm-generic/ioctls.h", "TCSETSF2", 0x542d}, + {"asm-generic/ioctls.h", "TIOCGPTN", 0x5430}, + {"asm-generic/ioctls.h", "TIOCSPTLCK", 0x5431}, + {"asm/ioctls.h", "FIOQSIZE", 0x545e}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_START", 0x54a0}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_STOP", 0x54a1}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_CONTINUE", 0x54a2}, + {"sound/asound.h", "SNDRV_TIMER_IOCTL_PAUSE", 0x54a3}, + {"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/if_tun.h", "TUNSETLINK", 0x54cd}, + {"linux/if_tun.h", "TUNSETGROUP", 0x54ce}, + {"linux/if_tun.h", "TUNGETFEATURES", 0x54cf}, + {"linux/if_tun.h", "TUNSETOFFLOAD", 0x54d0}, + {"linux/if_tun.h", "TUNSETTXFILTER", 0x54d1}, + {"linux/if_tun.h", "TUNGETIFF", 0x54d2}, + {"linux/if_tun.h", "TUNGETSNDBUF", 0x54d3}, + {"linux/if_tun.h", "TUNSETSNDBUF", 0x54d4}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_PVERSION", 0x5500}, + {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_CARD_INFO", 0x5501}, + {"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_SUBMITURB32", 0x550a}, + {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b}, + {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c}, + {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB32", 0x550c}, + {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d}, + {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY32", 0x550d}, + {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e}, + {"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x550f}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_ELEM_LIST", 0x5510}, + {"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x5510}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_ELEM_INFO", 0x5511}, + {"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x5511}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_ELEM_READ", 0x5512}, + {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0x5512}, + {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL32", 0x5512}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_ELEM_WRITE", 0x5513}, + {"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x5513}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_ELEM_LOCK", 0x5514}, + {"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_ELEM_UNLOCK", 0x5515}, + {"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x5515}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS", 0x5516}, + {"linux/usbdevice_fs.h", "USBDEVFS_DISCONNECT", 0x5516}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_ELEM_ADD", 0x5517}, + {"linux/usbdevice_fs.h", "USBDEVFS_CONNECT", 0x5517}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_ELEM_REPLACE", 0x5518}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_ELEM_REMOVE", 0x5519}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_TLV_READ", 0x551a}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_TLV_WRITE", 0x551b}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_TLV_COMMAND", 0x551c}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE", 0x5520}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_HWDEP_INFO", 0x5521}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE", 0x5530}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_PCM_INFO", 0x5531}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE", 0x5532}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE", 0x5540}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_RAWMIDI_INFO", 0x5541}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE", 0x5542}, + {"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/uinput.h", "UI_SET_PHYS", 0x556c}, + {"linux/uinput.h", "UI_SET_SWBIT", 0x556d}, + {"linux/uinput.h", "UI_BEGIN_FF_UPLOAD", 0x55c8}, + {"linux/uinput.h", "UI_END_FF_UPLOAD", 0x55c9}, + {"linux/uinput.h", "UI_BEGIN_FF_ERASE", 0x55ca}, + {"linux/uinput.h", "UI_END_FF_ERASE", 0x55cb}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_POWER", 0x55d0}, + {"sound/asound.h", "SNDRV_CTL_IOCTL_POWER_STATE", 0x55d1}, + {"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/vt.h", "VT_ACTIVATE", 0x5606}, + {"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/vt.h", "VT_GETHIFONTMASK", 0x560d}, + {"linux/videodev2.h", "VIDIOC_OVERLAY", 0x560e}, + {"linux/videodev2.h", "VIDIOC_OVERLAY_OLD", 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_S_PARM_OLD", 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_S_CTRL_OLD", 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_G_AUDIO_OLD", 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_G_AUDOUT_OLD", 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_CROPCAP_OLD", 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/videodev2.h", "VIDIOC_G_SLICED_VBI_CAP", 0x5645}, + {"linux/videodev2.h", "VIDIOC_LOG_STATUS", 0x5646}, + {"linux/videodev2.h", "VIDIOC_G_EXT_CTRLS", 0x5647}, + {"linux/videodev2.h", "VIDIOC_S_EXT_CTRLS", 0x5648}, + {"linux/videodev2.h", "VIDIOC_TRY_EXT_CTRLS", 0x5649}, + {"linux/videodev2.h", "VIDIOC_ENUM_FRAMESIZES", 0x564a}, + {"linux/videodev2.h", "VIDIOC_ENUM_FRAMEINTERVALS", 0x564b}, + {"linux/videodev2.h", "VIDIOC_G_ENC_INDEX", 0x564c}, + {"linux/videodev2.h", "VIDIOC_ENCODER_CMD", 0x564d}, + {"linux/videodev2.h", "VIDIOC_TRY_ENCODER_CMD", 0x564e}, + {"linux/videodev2.h", "VIDIOC_DBG_S_REGISTER", 0x564f}, + {"linux/videodev2.h", "VIDIOC_DBG_G_REGISTER", 0x5650}, + {"linux/videodev2.h", "VIDIOC_DBG_G_CHIP_IDENT", 0x5651}, + {"linux/videodev2.h", "VIDIOC_S_HW_FREQ_SEEK", 0x5652}, + {"linux/ivtvfb.h", "IVTVFB_IOC_DMA_FRAME", 0x56c0}, + {"linux/ivtv.h", "IVTV_IOC_DMA_FRAME", 0x56c0}, + {"sound/asound.h", "SNDRV_RAWMIDI_IOCTL_PVERSION", 0x5700}, + {"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x5700}, + {"sound/asound.h", "SNDRV_RAWMIDI_IOCTL_INFO", 0x5701}, + {"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/watchdog.h", "WDIOC_SETPRETIMEOUT", 0x5708}, + {"linux/watchdog.h", "WDIOC_GETPRETIMEOUT", 0x5709}, + {"linux/watchdog.h", "WDIOC_GETTIMELEFT", 0x570a}, + {"sound/asound.h", "SNDRV_RAWMIDI_IOCTL_PARAMS", 0x5710}, + {"sound/asound.h", "SNDRV_RAWMIDI_IOCTL_STATUS", 0x5720}, + {"sound/asound.h", "SNDRV_RAWMIDI_IOCTL_DROP", 0x5730}, + {"sound/asound.h", "SNDRV_RAWMIDI_IOCTL_DRAIN", 0x5731}, + {"linux/pktcdvd.h", "PACKET_CTRL_CMD", 0x5801}, + {"linux/falloc.h", "FS_IOC_RESVSP", 0x5828}, + {"linux/falloc.h", "FS_IOC_RESVSP64", 0x582a}, + {"linux/fs.h", "FIFREEZE", 0x5877}, + {"linux/fs.h", "FITHAW", 0x5878}, + {"linux/usb/tmc.h", "USBTMC_IOCTL_INDICATOR_PULSE", 0x5b01}, + {"linux/usb/tmc.h", "USBTMC_IOCTL_CLEAR", 0x5b02}, + {"linux/usb/tmc.h", "USBTMC_IOCTL_ABORT_BULK_OUT", 0x5b03}, + {"linux/usb/tmc.h", "USBTMC_IOCTL_ABORT_BULK_IN", 0x5b04}, + {"linux/usb/tmc.h", "USBTMC_IOCTL_CLEAR_OUT_HALT", 0x5b06}, + {"linux/usb/tmc.h", "USBTMC_IOCTL_CLEAR_IN_HALT", 0x5b07}, + {"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/atmdev.h", "ATM_ADDLECSADDR", 0x618e}, + {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f}, + {"linux/atmdev.h", "ATM_DELLECSADDR", 0x618f}, + {"linux/atmdev.h", "ATM_GETLECSADDR", 0x6190}, + {"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/atmdev.h", "ATM_ADDPARTY", 0x61f4}, + {"linux/atmdev.h", "COMPAT_ATM_ADDPARTY", 0x61f4}, + {"linux/atmdev.h", "ATM_DROPPARTY", 0x61f5}, + {"linux/cm4000_cs.h", "CM_IOCGSTATUS", 0x6300}, + {"linux/chio.h", "CHIOMOVE", 0x6301}, + {"linux/cm4000_cs.h", "CM_IOCGATR", 0x6301}, + {"linux/chio.h", "CHIOEXCHANGE", 0x6302}, + {"linux/cm4000_cs.h", "CM_IOCSPTS", 0x6302}, + {"linux/chio.h", "CHIOPOSITION", 0x6303}, + {"linux/cm4000_cs.h", "CM_IOCSRDR", 0x6303}, + {"linux/chio.h", "CHIOGPICKER", 0x6304}, + {"linux/cm4000_cs.h", "CM_IOCARDOFF", 0x6304}, + {"linux/chio.h", "CHIOSPICKER", 0x6305}, + {"linux/chio.h", "CHIOGPARAMS", 0x6306}, + {"linux/chio.h", "CHIOGSTATUS", 0x6308}, + {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a}, + {"linux/chio.h", "CHIOGELEM", 0x6310}, + {"linux/chio.h", "CHIOINITELEM", 0x6311}, + {"linux/chio.h", "CHIOSVOLTAG", 0x6312}, + {"linux/chio.h", "CHIOGVPARAMS", 0x6313}, + {"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/cm4000_cs.h", "CM_IOSDBGLVL", 0x63fa}, + {"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x6401}, + {"linux/video_decoder.h", "DECODER_GET_STATUS", 0x6402}, + {"pcmcia/ds.h", "DS_ADJUST_RESOURCE_INFO", 0x6402}, + {"linux/video_decoder.h", "DECODER_SET_NORM", 0x6403}, + {"pcmcia/ds.h", "DS_GET_CONFIGURATION_INFO", 0x6403}, + {"linux/video_decoder.h", "DECODER_SET_INPUT", 0x6404}, + {"pcmcia/ds.h", "DS_GET_FIRST_TUPLE", 0x6404}, + {"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x6405}, + {"pcmcia/ds.h", "DS_GET_NEXT_TUPLE", 0x6405}, + {"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x6406}, + {"pcmcia/ds.h", "DS_GET_TUPLE_DATA", 0x6406}, + {"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x6407}, + {"pcmcia/ds.h", "DS_PARSE_TUPLE", 0x6407}, + {"linux/video_decoder.h", "DECODER_SET_GPIO", 0x6408}, + {"pcmcia/ds.h", "DS_RESET_CARD", 0x6408}, + {"linux/video_decoder.h", "DECODER_INIT", 0x6409}, + {"pcmcia/ds.h", "DS_GET_STATUS", 0x6409}, + {"linux/video_decoder.h", "DECODER_SET_VBI_BYPASS", 0x640a}, + {"pcmcia/ds.h", "DS_ACCESS_CONFIGURATION_REGISTER", 0x640a}, + {"pcmcia/ds.h", "DS_VALIDATE_CIS", 0x640b}, + {"pcmcia/ds.h", "DS_SUSPEND_CARD", 0x640c}, + {"pcmcia/ds.h", "DS_RESUME_CARD", 0x640d}, + {"pcmcia/ds.h", "DS_EJECT_CARD", 0x640e}, + {"pcmcia/ds.h", "DS_INSERT_CARD", 0x640f}, + {"pcmcia/ds.h", "DS_GET_FIRST_REGION", 0x6410}, + {"pcmcia/ds.h", "DS_GET_NEXT_REGION", 0x6411}, + {"pcmcia/ds.h", "DS_REPLACE_CIS", 0x6412}, + {"pcmcia/ds.h", "DS_GET_FIRST_WINDOW", 0x6413}, + {"pcmcia/ds.h", "DS_GET_NEXT_WINDOW", 0x6414}, + {"pcmcia/ds.h", "DS_GET_MEM_PAGE", 0x6415}, + {"pcmcia/ds.h", "DS_BIND_REQUEST", 0x643c}, + {"pcmcia/ds.h", "DS_GET_DEVICE_INFO", 0x643d}, + {"pcmcia/ds.h", "DS_GET_NEXT_DEVICE", 0x643e}, + {"pcmcia/ds.h", "DS_UNBIND_REQUEST", 0x643f}, + {"pcmcia/ds.h", "DS_BIND_MTD", 0x6440}, + {"media/v4l2-common.h", "AUDC_SET_RADIO", 0x6458}, + {"media/v4l2-common.h", "TUNER_SET_TYPE_ADDR", 0x645a}, + {"media/v4l2-common.h", "TUNER_SET_STANDBY", 0x645b}, + {"media/v4l2-common.h", "TUNER_SET_CONFIG", 0x645c}, + {"media/v4l2-common.h", "VIDIOC_INT_S_TUNER_MODE", 0x645d}, + {"media/v4l2-common.h", "VIDIOC_INT_S_STANDBY", 0x645e}, + {"media/v4l2-common.h", "VIDIOC_INT_RESET", 0x6466}, + {"media/v4l2-common.h", "VIDIOC_INT_AUDIO_CLOCK_FREQ", 0x6467}, + {"media/v4l2-common.h", "VIDIOC_INT_DECODE_VBI_LINE", 0x6468}, + {"media/v4l2-common.h", "VIDIOC_INT_S_VBI_DATA", 0x6469}, + {"media/v4l2-common.h", "VIDIOC_INT_G_VBI_DATA", 0x646a}, + {"media/v4l2-common.h", "VIDIOC_INT_I2S_CLOCK_FREQ", 0x646c}, + {"media/v4l2-common.h", "VIDIOC_INT_S_AUDIO_ROUTING", 0x646d}, + {"media/v4l2-common.h", "VIDIOC_INT_G_AUDIO_ROUTING", 0x646e}, + {"media/v4l2-common.h", "VIDIOC_INT_S_VIDEO_ROUTING", 0x646f}, + {"media/v4l2-common.h", "VIDIOC_INT_G_VIDEO_ROUTING", 0x6470}, + {"media/v4l2-common.h", "VIDIOC_INT_S_CRYSTAL_FREQ", 0x6471}, + {"media/v4l2-common.h", "VIDIOC_INT_INIT", 0x6472}, + {"media/v4l2-common.h", "VIDIOC_INT_S_STD_OUTPUT", 0x6473}, + {"media/v4l2-common.h", "VIDIOC_INT_G_STD_OUTPUT", 0x6474}, + {"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/fs.h", "FS_IOC32_GETFLAGS", 0x6601}, + {"linux/fs.h", "FS_IOC_GETFLAGS", 0x6601}, + {"linux/fs.h", "FS_IOC32_SETFLAGS", 0x6602}, + {"linux/fs.h", "FS_IOC_SETFLAGS", 0x6602}, + {"linux/ext3_fs.h", "EXT3_IOC32_GETVERSION", 0x6603}, + {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION", 0x6603}, + {"linux/ext3_fs.h", "EXT3_IOC32_SETVERSION", 0x6604}, + {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION", 0x6604}, + {"linux/ext2_fs.h", "EXT2_IOC_GETRSVSZ", 0x6605}, + {"linux/ext3_fs.h", "EXT3_IOC32_GETRSVSZ", 0x6605}, + {"linux/ext3_fs.h", "EXT3_IOC_GETRSVSZ", 0x6605}, + {"linux/ext2_fs.h", "EXT2_IOC_SETRSVSZ", 0x6606}, + {"linux/ext3_fs.h", "EXT3_IOC32_SETRSVSZ", 0x6606}, + {"linux/ext3_fs.h", "EXT3_IOC_SETRSVSZ", 0x6606}, + {"linux/ext3_fs.h", "EXT3_IOC32_GROUP_EXTEND", 0x6607}, + {"linux/ext3_fs.h", "EXT3_IOC_GROUP_EXTEND", 0x6607}, + {"linux/ext3_fs.h", "EXT3_IOC_GROUP_ADD", 0x6608}, + {"linux/fs.h", "FS_IOC_FIEMAP", 0x660b}, + {"linux/ext3_fs.h", "EXT3_IOC32_WAIT_FOR_READONLY", 0x6663}, + {"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/usb/g_printer.h", "GADGET_GET_PRINTER_STATUS", 0x6721}, + {"linux/usb/g_printer.h", "GADGET_SET_PRINTER_STATUS", 0x6722}, + {"linux/hpet.h", "HPET_IE_ON", 0x6801}, + {"linux/hpet.h", "HPET_IE_OFF", 0x6802}, + {"linux/hpet.h", "HPET_INFO", 0x6803}, + {"linux/hpet.h", "HPET_EPI", 0x6804}, + {"linux/hpet.h", "HPET_DPI", 0x6805}, + {"linux/hpet.h", "HPET_IRQFREQ", 0x6806}, + {"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/i2o-dev.h", "I2OPASSTHRU", 0x690c}, + {"linux/i2o-dev.h", "I2OPASSTHRU32", 0x690c}, + {"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/ipmi.h", "IPMICTL_SEND_COMMAND_SETTIME", 0x6915}, + {"linux/ipmi.h", "IPMICTL_SET_TIMING_PARMS_CMD", 0x6916}, + {"linux/ipmi.h", "IPMICTL_GET_TIMING_PARMS_CMD", 0x6917}, + {"linux/ipmi.h", "IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD", 0x6918}, + {"linux/ipmi.h", "IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD", 0x6919}, + {"linux/ipmi.h", "IPMICTL_SET_MY_CHANNEL_LUN_CMD", 0x691a}, + {"linux/ipmi.h", "IPMICTL_GET_MY_CHANNEL_LUN_CMD", 0x691b}, + {"linux/ipmi.h", "IPMICTL_REGISTER_FOR_CMD_CHANS", 0x691c}, + {"linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD_CHANS", 0x691d}, + {"linux/ipmi.h", "IPMICTL_GET_MAINTENANCE_MODE_CMD", 0x691e}, + {"linux/ipmi.h", "IPMICTL_SET_MAINTENANCE_MODE_CMD", 0x691f}, + {"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}, + {"video/kyro.h", "KYRO_IOCTL_OVERLAY_CREATE", 0x6b00}, + {"video/kyro.h", "KYRO_IOCTL_OVERLAY_VIEWPORT_SET", 0x6b01}, + {"linux/spi/spidev.h", "SPI_IOC_RD_MODE", 0x6b01}, + {"linux/spi/spidev.h", "SPI_IOC_WR_MODE", 0x6b01}, + {"video/kyro.h", "KYRO_IOCTL_SET_VIDEO_MODE", 0x6b02}, + {"linux/spi/spidev.h", "SPI_IOC_RD_LSB_FIRST", 0x6b02}, + {"linux/spi/spidev.h", "SPI_IOC_WR_LSB_FIRST", 0x6b02}, + {"video/kyro.h", "KYRO_IOCTL_UVSTRIDE", 0x6b03}, + {"linux/spi/spidev.h", "SPI_IOC_RD_BITS_PER_WORD", 0x6b03}, + {"linux/spi/spidev.h", "SPI_IOC_WR_BITS_PER_WORD", 0x6b03}, + {"video/kyro.h", "KYRO_IOCTL_OVERLAY_OFFSET", 0x6b04}, + {"linux/spi/spidev.h", "SPI_IOC_RD_MAX_SPEED_HZ", 0x6b04}, + {"linux/spi/spidev.h", "SPI_IOC_WR_MAX_SPEED_HZ", 0x6b04}, + {"video/kyro.h", "KYRO_IOCTL_STRIDE", 0x6b05}, + {"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/synclink.h", "MGSL_IOCSPARAMS32", 0x6d00}, + {"linux/mmtimer.h", "MMTIMER_GETOFFSET", 0x6d00}, + {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00}, + {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01}, + {"linux/synclink.h", "MGSL_IOCGPARAMS32", 0x6d01}, + {"linux/mmtimer.h", "MMTIMER_GETRES", 0x6d01}, + {"linux/mtio.h", "MTIOCTOP", 0x6d01}, + {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01}, + {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02}, + {"linux/mmtimer.h", "MMTIMER_GETFREQ", 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/mmtimer.h", "MMTIMER_GETBITS", 0x6d04}, + {"linux/mtio.h", "MTIOCGETCONFIG", 0x6d04}, + {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05}, + {"linux/mtio.h", "MTIOCSETCONFIG", 0x6d05}, + {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06}, + {"linux/mmtimer.h", "MMTIMER_MMAPAVAIL", 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/mmtimer.h", "MMTIMER_GETCOUNTER", 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/synclink.h", "MGSL_IOCSGPIO", 0x6d10}, + {"linux/synclink.h", "MGSL_IOCGGPIO", 0x6d11}, + {"linux/synclink.h", "MGSL_IOCWAITGPIO", 0x6d12}, + {"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}, + {"video/sisfb.h", "SISFB_GET_INFO_OLD", 0x6ef8}, + {"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x6ef9}, + {"video/sisfb.h", "SISFB_GET_VBRSTATUS_OLD", 0x6ef9}, + {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0x6efa}, + {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_MODE", 0x6efa}, + {"video/sisfb.h", "SISFB_GET_AUTOMAXIMIZE_OLD", 0x6efa}, + {"video/sisfb.h", "SISFB_SET_AUTOMAXIMIZE_OLD", 0x6efa}, + {"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x6efb}, + {"mtd/ubi-user.h", "UBI_IOCMKVOL", 0x6f00}, + {"linux/dvb/audio.h", "AUDIO_STOP", 0x6f01}, + {"mtd/ubi-user.h", "UBI_IOCRMVOL", 0x6f01}, + {"linux/dvb/audio.h", "AUDIO_PLAY", 0x6f02}, + {"mtd/ubi-user.h", "UBI_IOCRSVOL", 0x6f02}, + {"linux/dvb/audio.h", "AUDIO_PAUSE", 0x6f03}, + {"mtd/ubi-user.h", "UBI_IOCRNVOL", 0x6f03}, + {"linux/dvb/audio.h", "AUDIO_CONTINUE", 0x6f04}, + {"linux/dvb/audio.h", "AUDIO_SELECT_SOURCE", 0x6f05}, + {"linux/dvb/audio.h", "AUDIO_SET_MUTE", 0x6f06}, + {"linux/dvb/audio.h", "AUDIO_SET_AV_SYNC", 0x6f07}, + {"linux/dvb/audio.h", "AUDIO_SET_BYPASS_MODE", 0x6f08}, + {"linux/dvb/audio.h", "AUDIO_CHANNEL_SELECT", 0x6f09}, + {"linux/dvb/audio.h", "AUDIO_GET_STATUS", 0x6f0a}, + {"linux/dvb/audio.h", "AUDIO_GET_CAPABILITIES", 0x6f0b}, + {"linux/dvb/audio.h", "AUDIO_CLEAR_BUFFER", 0x6f0c}, + {"linux/dvb/audio.h", "AUDIO_SET_ID", 0x6f0d}, + {"linux/dvb/audio.h", "AUDIO_SET_MIXER", 0x6f0e}, + {"linux/dvb/audio.h", "AUDIO_SET_STREAMTYPE", 0x6f0f}, + {"linux/dvb/audio.h", "AUDIO_SET_EXT_ID", 0x6f10}, + {"linux/dvb/audio.h", "AUDIO_SET_ATTRIBUTES", 0x6f11}, + {"linux/dvb/audio.h", "AUDIO_SET_KARAOKE", 0x6f12}, + {"linux/dvb/audio.h", "AUDIO_GET_PTS", 0x6f13}, + {"linux/dvb/audio.h", "AUDIO_BILINGUAL_CHANNEL_SELECT", 0x6f14}, + {"linux/dvb/video.h", "VIDEO_STOP", 0x6f15}, + {"linux/dvb/video.h", "VIDEO_PLAY", 0x6f16}, + {"linux/dvb/video.h", "VIDEO_FREEZE", 0x6f17}, + {"linux/dvb/video.h", "VIDEO_CONTINUE", 0x6f18}, + {"linux/dvb/video.h", "VIDEO_SELECT_SOURCE", 0x6f19}, + {"linux/dvb/video.h", "VIDEO_SET_BLANK", 0x6f1a}, + {"linux/dvb/video.h", "VIDEO_GET_STATUS", 0x6f1b}, + {"linux/dvb/video.h", "VIDEO_GET_EVENT", 0x6f1c}, + {"linux/dvb/video.h", "VIDEO_SET_DISPLAY_FORMAT", 0x6f1d}, + {"linux/dvb/video.h", "VIDEO_STILLPICTURE", 0x6f1e}, + {"linux/dvb/video.h", "VIDEO_FAST_FORWARD", 0x6f1f}, + {"linux/dvb/video.h", "VIDEO_SLOWMOTION", 0x6f20}, + {"linux/dvb/video.h", "VIDEO_GET_CAPABILITIES", 0x6f21}, + {"linux/dvb/video.h", "VIDEO_CLEAR_BUFFER", 0x6f22}, + {"linux/dvb/video.h", "VIDEO_SET_ID", 0x6f23}, + {"linux/dvb/video.h", "VIDEO_SET_STREAMTYPE", 0x6f24}, + {"linux/dvb/video.h", "VIDEO_SET_FORMAT", 0x6f25}, + {"linux/dvb/video.h", "VIDEO_SET_SYSTEM", 0x6f26}, + {"linux/dvb/video.h", "VIDEO_SET_HIGHLIGHT", 0x6f27}, + {"linux/dvb/dmx.h", "DMX_START", 0x6f29}, + {"linux/dvb/dmx.h", "DMX_STOP", 0x6f2a}, + {"linux/dvb/dmx.h", "DMX_SET_FILTER", 0x6f2b}, + {"linux/dvb/dmx.h", "DMX_SET_PES_FILTER", 0x6f2c}, + {"linux/dvb/dmx.h", "DMX_SET_BUFFER_SIZE", 0x6f2d}, + {"linux/dvb/dmx.h", "DMX_GET_PES_PIDS", 0x6f2f}, + {"linux/dvb/dmx.h", "DMX_GET_CAPS", 0x6f30}, + {"linux/dvb/dmx.h", "DMX_SET_SOURCE", 0x6f31}, + {"linux/dvb/dmx.h", "DMX_GET_STC", 0x6f32}, + {"linux/dvb/video.h", "VIDEO_SET_SPU", 0x6f32}, + {"linux/dvb/video.h", "VIDEO_SET_SPU_PALETTE", 0x6f33}, + {"linux/dvb/net.h", "NET_ADD_IF", 0x6f34}, + {"linux/dvb/video.h", "VIDEO_GET_NAVI", 0x6f34}, + {"linux/dvb/net.h", "NET_REMOVE_IF", 0x6f35}, + {"linux/dvb/video.h", "VIDEO_SET_ATTRIBUTES", 0x6f35}, + {"linux/dvb/net.h", "NET_GET_IF", 0x6f36}, + {"linux/dvb/video.h", "VIDEO_GET_SIZE", 0x6f37}, + {"linux/dvb/video.h", "VIDEO_GET_FRAME_RATE", 0x6f38}, + {"linux/dvb/video.h", "VIDEO_GET_PTS", 0x6f39}, + {"linux/dvb/video.h", "VIDEO_GET_FRAME_COUNT", 0x6f3a}, + {"linux/dvb/video.h", "VIDEO_COMMAND", 0x6f3b}, + {"linux/dvb/video.h", "VIDEO_TRY_COMMAND", 0x6f3c}, + {"linux/dvb/frontend.h", "FE_GET_INFO", 0x6f3d}, + {"linux/dvb/frontend.h", "FE_DISEQC_RESET_OVERLOAD", 0x6f3e}, + {"linux/dvb/frontend.h", "FE_DISEQC_SEND_MASTER_CMD", 0x6f3f}, + {"linux/dvb/frontend.h", "FE_DISEQC_RECV_SLAVE_REPLY", 0x6f40}, + {"mtd/ubi-user.h", "UBI_IOCATT", 0x6f40}, + {"linux/dvb/frontend.h", "FE_DISEQC_SEND_BURST", 0x6f41}, + {"mtd/ubi-user.h", "UBI_IOCDET", 0x6f41}, + {"linux/dvb/frontend.h", "FE_SET_TONE", 0x6f42}, + {"linux/dvb/frontend.h", "FE_SET_VOLTAGE", 0x6f43}, + {"linux/dvb/frontend.h", "FE_ENABLE_HIGH_LNB_VOLTAGE", 0x6f44}, + {"linux/dvb/frontend.h", "FE_READ_STATUS", 0x6f45}, + {"linux/dvb/frontend.h", "FE_READ_BER", 0x6f46}, + {"linux/dvb/frontend.h", "FE_READ_SIGNAL_STRENGTH", 0x6f47}, + {"linux/dvb/frontend.h", "FE_READ_SNR", 0x6f48}, + {"linux/dvb/frontend.h", "FE_READ_UNCORRECTED_BLOCKS", 0x6f49}, + {"linux/dvb/frontend.h", "FE_SET_FRONTEND", 0x6f4c}, + {"linux/dvb/frontend.h", "FE_GET_FRONTEND", 0x6f4d}, + {"linux/dvb/frontend.h", "FE_GET_EVENT", 0x6f4e}, + {"linux/dvb/frontend.h", "FE_DISHNETWORK_SEND_LEGACY_CMD", 0x6f50}, + {"linux/dvb/frontend.h", "FE_SET_FRONTEND_TUNE_MODE", 0x6f51}, + {"linux/dvb/frontend.h", "FE_SET_PROPERTY", 0x6f52}, + {"linux/dvb/frontend.h", "FE_GET_PROPERTY", 0x6f53}, + {"linux/dvb/ca.h", "CA_RESET", 0x6f80}, + {"linux/dvb/ca.h", "CA_GET_CAP", 0x6f81}, + {"linux/dvb/ca.h", "CA_GET_SLOT_INFO", 0x6f82}, + {"linux/dvb/ca.h", "CA_GET_DESCR_INFO", 0x6f83}, + {"linux/dvb/ca.h", "CA_GET_MSG", 0x6f84}, + {"linux/dvb/ca.h", "CA_SEND_MSG", 0x6f85}, + {"linux/dvb/ca.h", "CA_SET_DESCR", 0x6f86}, + {"linux/dvb/ca.h", "CA_SET_PID", 0x6f87}, + {"linux/dvb/osd.h", "OSD_SEND_CMD", 0x6fa0}, + {"linux/dvb/osd.h", "OSD_GET_CAPABILITY", 0x6fa1}, + {"linux/phantom.h", "PHN_GET_REG", 0x7000}, + {"linux/phantom.h", "PHN_SET_REG", 0x7001}, + {"linux/rtc.h", "RTC_AIE_ON", 0x7001}, + {"linux/phantom.h", "PHN_GET_REGS", 0x7002}, + {"linux/rtc.h", "RTC_AIE_OFF", 0x7002}, + {"linux/phantom.h", "PHN_SET_REGS", 0x7003}, + {"linux/rtc.h", "RTC_UIE_ON", 0x7003}, + {"linux/phantom.h", "PHN_NOT_OH", 0x7004}, + {"linux/rtc.h", "RTC_UIE_OFF", 0x7004}, + {"linux/phantom.h", "PHN_GETREG", 0x7005}, + {"linux/rtc.h", "RTC_PIE_ON", 0x7005}, + {"linux/phantom.h", "PHN_SETREG", 0x7006}, + {"linux/rtc.h", "RTC_PIE_OFF", 0x7006}, + {"linux/phantom.h", "PHN_GETREGS", 0x7007}, + {"linux/rtc.h", "RTC_ALM_SET", 0x7007}, + {"linux/phantom.h", "PHN_SETREGS", 0x7008}, + {"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/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/pps.h", "PPS_GETPARAMS", 0x70a1}, + {"linux/pps.h", "PPS_SETPARAMS", 0x70a2}, + {"linux/pps.h", "PPS_GETCAP", 0x70a3}, + {"linux/pps.h", "PPS_FETCH", 0x70a4}, + {"linux/serio.h", "SPIOCSTYPE", 0x7101}, + {"linux/videotext.h", "VTXIOCGETINFO_OLD", 0x7101}, + {"linux/videotext.h", "VTXIOCCLRPAGE_OLD", 0x7102}, + {"linux/videotext.h", "VTXIOCCLRFOUND_OLD", 0x7103}, + {"linux/videotext.h", "VTXIOCPAGEREQ_OLD", 0x7104}, + {"linux/videotext.h", "VTXIOCGETSTAT_OLD", 0x7105}, + {"linux/videotext.h", "VTXIOCGETPAGE_OLD", 0x7106}, + {"linux/videotext.h", "VTXIOCSTOPDAU_OLD", 0x7107}, + {"linux/videotext.h", "VTXIOCPUTPAGE_OLD", 0x7108}, + {"linux/videotext.h", "VTXIOCSETDISP_OLD", 0x7109}, + {"linux/videotext.h", "VTXIOCPUTSTAT_OLD", 0x710a}, + {"linux/videotext.h", "VTXIOCCLRCACHE_OLD", 0x710b}, + {"linux/videotext.h", "VTXIOCSETVIRT_OLD", 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/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201}, + {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202}, + {"linux/msdos_fs.h", "FAT_IOCTL_GET_ATTRIBUTES", 0x7210}, + {"linux/msdos_fs.h", "FAT_IOCTL_SET_ATTRIBUTES", 0x7211}, + {"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/bfin_simple_timer.h", "BFIN_SIMPLE_TIMER_SET_PERIOD", 0x7402}, + {"asm/bfin_simple_timer.h", "BFIN_SIMPLE_TIMER_START", 0x7406}, + {"asm/bfin_simple_timer.h", "BFIN_SIMPLE_TIMER_STOP", 0x7408}, + {"asm/bfin_simple_timer.h", "BFIN_SIMPLE_TIMER_READ", 0x740a}, + {"linux/if_ppp.h", "PPPIOCGL2TPSTATS", 0x7436}, + {"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/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/fs.h", "FS_IOC32_GETVERSION", 0x7601}, + {"linux/fs.h", "FS_IOC_GETVERSION", 0x7601}, + {"linux/videodev.h", "VIDIOCGCAP", 0x7601}, + {"linux/fs.h", "FS_IOC32_SETVERSION", 0x7602}, + {"linux/fs.h", "FS_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/sonypi.h", "SONYPI_IOCGFAN", 0x760a}, + {"linux/videodev.h", "VIDIOCSWIN", 0x760a}, + {"linux/sonypi.h", "SONYPI_IOCSFAN", 0x760b}, + {"linux/videodev.h", "VIDIOCGFBUF", 0x760b}, + {"linux/sonypi.h", "SONYPI_IOCGTEMP", 0x760c}, + {"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}, + {"media/pwc-ioctl.h", "VIDIOCPWCRUSER", 0x76c0}, + {"linux/meye.h", "MEYEIOC_S_PARAMS", 0x76c1}, + {"media/pwc-ioctl.h", "VIDIOCPWCSUSER", 0x76c1}, + {"linux/meye.h", "MEYEIOC_QBUF_CAPT", 0x76c2}, + {"media/pwc-ioctl.h", "VIDIOCPWCFACTORY", 0x76c2}, + {"linux/meye.h", "MEYEIOC_SYNC", 0x76c3}, + {"media/pwc-ioctl.h", "VIDIOCPWCGCQUAL", 0x76c3}, + {"media/pwc-ioctl.h", "VIDIOCPWCSCQUAL", 0x76c3}, + {"linux/meye.h", "MEYEIOC_STILLCAPT", 0x76c4}, + {"linux/meye.h", "MEYEIOC_STILLJCAPT", 0x76c5}, + {"media/pwc-ioctl.h", "VIDIOCPWCGSERIAL", 0x76c6}, + {"media/pwc-ioctl.h", "VIDIOCPWCPROBE", 0x76c7}, + {"media/pwc-ioctl.h", "VIDIOCPWCGAGC", 0x76c8}, + {"media/pwc-ioctl.h", "VIDIOCPWCSAGC", 0x76c8}, + {"media/pwc-ioctl.h", "VIDIOCPWCSSHUTTER", 0x76c9}, + {"media/pwc-ioctl.h", "VIDIOCPWCGAWB", 0x76ca}, + {"media/pwc-ioctl.h", "VIDIOCPWCSAWB", 0x76ca}, + {"media/pwc-ioctl.h", "VIDIOCPWCGAWBSPEED", 0x76cb}, + {"media/pwc-ioctl.h", "VIDIOCPWCSAWBSPEED", 0x76cb}, + {"media/pwc-ioctl.h", "VIDIOCPWCGLED", 0x76cd}, + {"media/pwc-ioctl.h", "VIDIOCPWCSLED", 0x76cd}, + {"media/pwc-ioctl.h", "VIDIOCPWCGCONTOUR", 0x76ce}, + {"media/pwc-ioctl.h", "VIDIOCPWCSCONTOUR", 0x76ce}, + {"media/pwc-ioctl.h", "VIDIOCPWCGBACKLIGHT", 0x76cf}, + {"media/pwc-ioctl.h", "VIDIOCPWCSBACKLIGHT", 0x76cf}, + {"media/pwc-ioctl.h", "VIDIOCPWCGFLICKER", 0x76d0}, + {"media/pwc-ioctl.h", "VIDIOCPWCSFLICKER", 0x76d0}, + {"media/pwc-ioctl.h", "VIDIOCPWCGDYNNOISE", 0x76d1}, + {"media/pwc-ioctl.h", "VIDIOCPWCSDYNNOISE", 0x76d1}, + {"media/pwc-ioctl.h", "VIDIOCPWCGREALSIZE", 0x76d2}, + {"media/pwc-ioctl.h", "VIDIOCPWCMPTGRANGE", 0x76d3}, + {"media/pwc-ioctl.h", "VIDIOCPWCMPTRESET", 0x76d3}, + {"media/pwc-ioctl.h", "VIDIOCPWCMPTGANGLE", 0x76d4}, + {"media/pwc-ioctl.h", "VIDIOCPWCMPTSANGLE", 0x76d4}, + {"linux/videodev.h", "VIDIOSFPS", 0x76d4}, + {"media/pwc-ioctl.h", "VIDIOCPWCMPTSTATUS", 0x76d5}, + {"media/pwc-ioctl.h", "VIDIOCPWCGVIDCMD", 0x76d7}, + {"media/pwc-ioctl.h", "VIDIOCPWCGVIDTABLE", 0x76d8}, + {"linux/videotext.h", "VTXIOCGETINFO", 0x8101}, + {"linux/videotext.h", "VTXIOCCLRPAGE", 0x8102}, + {"linux/videotext.h", "VTXIOCCLRFOUND", 0x8103}, + {"linux/videotext.h", "VTXIOCPAGEREQ", 0x8104}, + {"linux/videotext.h", "VTXIOCGETSTAT", 0x8105}, + {"linux/videotext.h", "VTXIOCGETPAGE", 0x8106}, + {"linux/videotext.h", "VTXIOCSTOPDAU", 0x8107}, + {"linux/videotext.h", "VTXIOCPUTPAGE", 0x8108}, + {"linux/videotext.h", "VTXIOCSETDISP", 0x8109}, + {"linux/videotext.h", "VTXIOCPUTSTAT", 0x810a}, + {"linux/videotext.h", "VTXIOCCLRCACHE", 0x810b}, + {"linux/videotext.h", "VTXIOCSETVIRT", 0x810c}, + {"media/ovcamchip.h", "OVCAMCHIP_CMD_Q_SUBTYPE", 0x8800}, + {"media/ovcamchip.h", "OVCAMCHIP_CMD_INITIALIZE", 0x8801}, + {"media/ovcamchip.h", "OVCAMCHIP_CMD_S_CTRL", 0x8802}, + {"media/ovcamchip.h", "OVCAMCHIP_CMD_G_CTRL", 0x8803}, + {"media/ovcamchip.h", "OVCAMCHIP_CMD_S_MODE", 0x8804}, + {"media/ovcamchip.h", "OVCAMCHIP_MAX_CMD", 0x883f}, + {"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}, + {"asm/sockios.h", "SIOCGSTAMPNS", 0x8907}, + {"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", "SIOCBRADDBR", 0x89a0}, + {"linux/sockios.h", "SIOCBRDELBR", 0x89a1}, + {"linux/sockios.h", "SIOCBRADDIF", 0x89a2}, + {"linux/sockios.h", "SIOCBRDELIF", 0x89a3}, + {"linux/sockios.h", "SIOCSHWTSTAMP", 0x89b0}, + {"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", "SIOCSIWMLME", 0x8b16}, + {"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", "SIOCSIWGENIE", 0x8b30}, + {"linux/wireless.h", "SIOCGIWGENIE", 0x8b31}, + {"linux/wireless.h", "SIOCSIWAUTH", 0x8b32}, + {"linux/wireless.h", "SIOCGIWAUTH", 0x8b33}, + {"linux/wireless.h", "SIOCSIWENCODEEXT", 0x8b34}, + {"linux/wireless.h", "SIOCGIWENCODEEXT", 0x8b35}, + {"linux/wireless.h", "SIOCSIWPMKSA", 0x8b36}, + {"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/auto_fs4.h", "AUTOFS_IOC_PROTOSUBVER", 0x9367}, + {"linux/auto_fs4.h", "AUTOFS_IOC_ASKREGHOST", 0x9368}, + {"linux/auto_fs4.h", "AUTOFS_IOC_TOGGLEREGHOST", 0x9369}, + {"linux/auto_fs4.h", "AUTOFS_IOC_ASKUMOUNT", 0x9370}, + {"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/nbd.h", "NBD_SET_TIMEOUT", 0xab09}, + {"linux/raw.h", "RAW_SETBIND", 0xac00}, + {"linux/raw.h", "RAW_GETBIND", 0xac01}, + {"linux/kvm.h", "KVM_GET_API_VERSION", 0xae00}, + {"linux/kvm.h", "KVM_CREATE_VM", 0xae01}, + {"linux/kvm.h", "KVM_GET_MSR_INDEX_LIST", 0xae02}, + {"linux/kvm.h", "KVM_CHECK_EXTENSION", 0xae03}, + {"linux/kvm.h", "KVM_GET_VCPU_MMAP_SIZE", 0xae04}, + {"linux/kvm.h", "KVM_GET_SUPPORTED_CPUID", 0xae05}, + {"linux/kvm.h", "KVM_S390_ENABLE_SIE", 0xae06}, + {"linux/kvm.h", "KVM_TRACE_ENABLE", 0xae06}, + {"linux/kvm.h", "KVM_TRACE_PAUSE", 0xae07}, + {"linux/kvm.h", "KVM_TRACE_DISABLE", 0xae08}, + {"linux/kvm.h", "KVM_SET_MEMORY_REGION", 0xae40}, + {"linux/kvm.h", "KVM_CREATE_VCPU", 0xae41}, + {"linux/kvm.h", "KVM_GET_DIRTY_LOG", 0xae42}, + {"linux/kvm.h", "KVM_SET_MEMORY_ALIAS", 0xae43}, + {"linux/kvm.h", "KVM_SET_NR_MMU_PAGES", 0xae44}, + {"linux/kvm.h", "KVM_GET_NR_MMU_PAGES", 0xae45}, + {"linux/kvm.h", "KVM_SET_USER_MEMORY_REGION", 0xae46}, + {"linux/kvm.h", "KVM_SET_TSS_ADDR", 0xae47}, + {"linux/kvm.h", "KVM_CREATE_IRQCHIP", 0xae60}, + {"linux/kvm.h", "KVM_IRQ_LINE", 0xae61}, + {"linux/kvm.h", "KVM_GET_IRQCHIP", 0xae62}, + {"linux/kvm.h", "KVM_SET_IRQCHIP", 0xae63}, + {"linux/kvm.h", "KVM_CREATE_PIT", 0xae64}, + {"linux/kvm.h", "KVM_GET_PIT", 0xae65}, + {"linux/kvm.h", "KVM_SET_PIT", 0xae66}, + {"linux/kvm.h", "KVM_IRQ_LINE_STATUS", 0xae67}, + {"linux/kvm.h", "KVM_ASSIGN_PCI_DEVICE", 0xae69}, + {"linux/kvm.h", "KVM_SET_GSI_ROUTING", 0xae6a}, + {"linux/kvm.h", "KVM_ASSIGN_DEV_IRQ", 0xae70}, + {"linux/kvm.h", "KVM_ASSIGN_IRQ", 0xae70}, + {"linux/kvm.h", "KVM_REINJECT_CONTROL", 0xae71}, + {"linux/kvm.h", "KVM_DEASSIGN_PCI_DEVICE", 0xae72}, + {"linux/kvm.h", "KVM_DEASSIGN_DEV_IRQ", 0xae75}, + {"linux/kvm.h", "KVM_RUN", 0xae80}, + {"linux/kvm.h", "KVM_GET_REGS", 0xae81}, + {"linux/kvm.h", "KVM_SET_REGS", 0xae82}, + {"linux/kvm.h", "KVM_GET_SREGS", 0xae83}, + {"linux/kvm.h", "KVM_SET_SREGS", 0xae84}, + {"linux/kvm.h", "KVM_TRANSLATE", 0xae85}, + {"linux/kvm.h", "KVM_INTERRUPT", 0xae86}, + {"linux/kvm.h", "KVM_DEBUG_GUEST", 0xae87}, + {"linux/kvm.h", "KVM_GET_MSRS", 0xae88}, + {"linux/kvm.h", "KVM_SET_MSRS", 0xae89}, + {"linux/kvm.h", "KVM_SET_CPUID", 0xae8a}, + {"linux/kvm.h", "KVM_SET_SIGNAL_MASK", 0xae8b}, + {"linux/kvm.h", "KVM_GET_FPU", 0xae8c}, + {"linux/kvm.h", "KVM_SET_FPU", 0xae8d}, + {"linux/kvm.h", "KVM_GET_LAPIC", 0xae8e}, + {"linux/kvm.h", "KVM_SET_LAPIC", 0xae8f}, + {"linux/kvm.h", "KVM_SET_CPUID2", 0xae90}, + {"linux/kvm.h", "KVM_GET_CPUID2", 0xae91}, + {"linux/kvm.h", "KVM_TPR_ACCESS_REPORTING", 0xae92}, + {"linux/kvm.h", "KVM_SET_VAPIC_ADDR", 0xae93}, + {"linux/kvm.h", "KVM_S390_INTERRUPT", 0xae94}, + {"linux/kvm.h", "KVM_S390_STORE_STATUS", 0xae95}, + {"linux/kvm.h", "KVM_S390_SET_INITIAL_PSW", 0xae96}, + {"linux/kvm.h", "KVM_S390_INITIAL_RESET", 0xae97}, + {"linux/kvm.h", "KVM_GET_MP_STATE", 0xae98}, + {"linux/kvm.h", "KVM_SET_MP_STATE", 0xae99}, + {"linux/kvm.h", "KVM_IA64_VCPU_GET_STACK", 0xae9a}, + {"linux/kvm.h", "KVM_NMI", 0xae9a}, + {"linux/kvm.h", "KVM_IA64_VCPU_SET_STACK", 0xae9b}, + {"linux/kvm.h", "KVM_SET_GUEST_DEBUG", 0xae9b}, + {"linux/if_pppox.h", "PPPOEIOCSFWD", 0xb100}, + {"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101}, + {"linux/usb/iowarrior.h", "IOW_WRITE", 0xc001}, + {"linux/usb/iowarrior.h", "IOW_READ", 0xc002}, + {"linux/usb/iowarrior.h", "IOW_GETINFO", 0xc003}, + {"linux/reiserfs_fs.h", "REISERFS_IOC32_UNPACK", 0xcd01}, + {"linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", 0xcd01}, + {"video/sisfb.h", "SISFB_GET_INFO_SIZE", 0xf300}, + {"video/sisfb.h", "SISFB_GET_INFO", 0xf301}, + {"video/sisfb.h", "SISFB_GET_VBRSTATUS", 0xf302}, + {"video/sisfb.h", "SISFB_GET_AUTOMAXIMIZE", 0xf303}, + {"video/sisfb.h", "SISFB_SET_AUTOMAXIMIZE", 0xf303}, + {"video/sisfb.h", "SISFB_GET_TVPOSOFFSET", 0xf304}, + {"video/sisfb.h", "SISFB_SET_TVPOSOFFSET", 0xf304}, + {"video/sisfb.h", "SISFB_COMMAND", 0xf305}, + {"video/sisfb.h", "SISFB_SET_LOCK", 0xf306}, + {"video/mbxfb.h", "MBXFB_IOCX_OVERLAY", 0xf400}, + {"video/mbxfb.h", "MBXFB_IOCG_ALPHA", 0xf401}, + {"video/mbxfb.h", "MBXFB_IOCS_ALPHA", 0xf402}, + {"video/mbxfb.h", "MBXFB_IOCS_PLANEORDER", 0xf403}, + {"video/mbxfb.h", "MBXFB_IOCS_REG", 0xf404}, + {"video/mbxfb.h", "MBXFB_IOCX_REG", 0xf405}, + {"linux/dm-ioctl.h", "DM_VERSION", 0xfd00}, + {"linux/dm-ioctl.h", "DM_VERSION_32", 0xfd00}, + {"linux/dm-ioctl.h", "DM_REMOVE_ALL", 0xfd01}, + {"linux/dm-ioctl.h", "DM_REMOVE_ALL_32", 0xfd01}, + {"linux/dm-ioctl.h", "DM_LIST_DEVICES", 0xfd02}, + {"linux/dm-ioctl.h", "DM_LIST_DEVICES_32", 0xfd02}, + {"linux/dm-ioctl.h", "DM_DEV_CREATE", 0xfd03}, + {"linux/dm-ioctl.h", "DM_DEV_CREATE_32", 0xfd03}, + {"linux/dm-ioctl.h", "DM_DEV_REMOVE", 0xfd04}, + {"linux/dm-ioctl.h", "DM_DEV_REMOVE_32", 0xfd04}, + {"linux/dm-ioctl.h", "DM_DEV_RENAME", 0xfd05}, + {"linux/dm-ioctl.h", "DM_DEV_RENAME_32", 0xfd05}, + {"linux/dm-ioctl.h", "DM_DEV_SUSPEND", 0xfd06}, + {"linux/dm-ioctl.h", "DM_DEV_SUSPEND_32", 0xfd06}, + {"linux/dm-ioctl.h", "DM_DEV_STATUS", 0xfd07}, + {"linux/dm-ioctl.h", "DM_DEV_STATUS_32", 0xfd07}, + {"linux/dm-ioctl.h", "DM_DEV_WAIT", 0xfd08}, + {"linux/dm-ioctl.h", "DM_DEV_WAIT_32", 0xfd08}, + {"linux/dm-ioctl.h", "DM_TABLE_LOAD", 0xfd09}, + {"linux/dm-ioctl.h", "DM_TABLE_LOAD_32", 0xfd09}, + {"linux/dm-ioctl.h", "DM_TABLE_CLEAR", 0xfd0a}, + {"linux/dm-ioctl.h", "DM_TABLE_CLEAR_32", 0xfd0a}, + {"linux/dm-ioctl.h", "DM_TABLE_DEPS", 0xfd0b}, + {"linux/dm-ioctl.h", "DM_TABLE_DEPS_32", 0xfd0b}, + {"linux/dm-ioctl.h", "DM_TABLE_STATUS", 0xfd0c}, + {"linux/dm-ioctl.h", "DM_TABLE_STATUS_32", 0xfd0c}, + {"linux/dm-ioctl.h", "DM_LIST_VERSIONS", 0xfd0d}, + {"linux/dm-ioctl.h", "DM_LIST_VERSIONS_32", 0xfd0d}, + {"linux/dm-ioctl.h", "DM_TARGET_MSG", 0xfd0e}, + {"linux/dm-ioctl.h", "DM_TARGET_MSG_32", 0xfd0e}, + {"linux/dm-ioctl.h", "DM_DEV_SET_GEOMETRY", 0xfd0f}, + {"linux/dm-ioctl.h", "DM_DEV_SET_GEOMETRY_32", 0xfd0f},
diff --git a/strace-4.5.20/linux/bfin/syscallent.h b/strace-4.5.20/linux/bfin/syscallent.h new file mode 100644 index 0000000..660b842 --- /dev/null +++ b/strace-4.5.20/linux/bfin/syscallent.h
@@ -0,0 +1,401 @@ +/* + * 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$ + */ + + { 0, 0, sys_restart_syscall, "restart_syscall" }, /* 0 */ + { 1, TP, sys_exit, "_exit", SYS_exit }, /* 1 */ + { 0, TP, sys_fork, "fork", SYS_fork }, /* 2 */ + { 3, TD, sys_read, "read", SYS_read }, /* 3 */ + { 3, TD, sys_write, "write", SYS_write }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TD, sys_close, "close" }, /* 6 */ + { 3, TP, sys_waitpid, "waitpid", SYS_wait4 }, /* 7 */ + { 2, TD|TF, sys_creat, "creat" }, /* 8 */ + { 2, TF, sys_link, "link" }, /* 9 */ + { 1, TF, sys_unlink, "unlink" }, /* 10 */ + { 3, TF|TP, sys_execve, "execve", 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 */ + { 3, TF, sys_chown, "chown" }, /* 16 */ + { 0, 0, sys_break, "break" }, /* 17 */ + { 2, TF, sys_oldstat, "oldstat" }, /* 18 */ + { 3, TD, 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, TD, 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, TD, sys_dup, "dup" }, /* 41 */ + { 1, TD, sys_pipe, "pipe" }, /* 42 */ + { 1, 0, sys_times, "times" }, /* 43 */ + { 0, 0, sys_prof, "prof" }, /* 44 */ + { 1, 0, sys_brk, "brk" }, /* 45 */ + { 1, 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, TD, sys_ioctl, "ioctl" }, /* 54 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 55 */ + { 0, 0, sys_mpx, "mpx" }, /* 56 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 57 */ + { 2, 0, sys_ulimit, "ulimit" }, /* 58 */ + { 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, TD, 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, TD, sys_oldselect, "oldselect" }, /* 82 */ + { 2, TF, sys_symlink, "symlink" }, /* 83 */ + { 2, TF, sys_oldlstat, "oldlstat" }, /* 84 */ + { 3, TF, sys_readlink, "readlink" }, /* 85 */ + { 1, TF, sys_uselib, "uselib" }, /* 86 */ + { 1, TF, sys_swapon, "swapon" }, /* 87 */ + { 3, 0, sys_reboot, "reboot" }, /* 88 */ + { 3, TD, sys_readdir, "readdir" }, /* 89 */ + { 6, TD, sys_old_mmap, "old_mmap" }, /* 90 */ + { 2, 0, sys_munmap, "munmap" }, /* 91 */ + { 2, TF, sys_truncate, "truncate" }, /* 92 */ + { 2, TD, sys_ftruncate, "ftruncate" }, /* 93 */ + { 2, TD, sys_fchmod, "fchmod" }, /* 94 */ + { 3, TD, sys_fchown, "fchown" }, /* 95 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 96 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 97 */ + { 4, 0, sys_profil, "profil" }, /* 98 */ + { 2, TF, sys_statfs, "statfs" }, /* 99 */ + { 2, TD, sys_fstatfs, "fstatfs" }, /* 100 */ + { 3, 0, sys_ioperm, "ioperm" }, /* 101 */ + { 2, TD, 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, TD, 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, TD, 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 */ + { 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 */ + { 3, 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, TD, sys_fchdir, "fchdir" }, /* 133 */ + { 0, 0, sys_bdflush, "bdflush" }, /* 134 */ + { 3, 0, printargs, "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, TD, sys_llseek, "_llseek" }, /* 140 */ + { 3, TD, sys_getdents, "getdents" }, /* 141 */ + { 5, TD, sys_select, "select" }, /* 142 */ + { 2, TD, sys_flock, "flock" }, /* 143 */ + { 3, 0, sys_msync, "msync" }, /* 144 */ + { 3, TD, sys_readv, "readv", SYS_readv }, /* 145 */ + { 3, TD, sys_writev, "writev", SYS_writev }, /* 146 */ + { 1, 0, sys_getsid, "getsid" }, /* 147 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 148 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */ + { 2, 0, sys_mlock, "mlock" }, /* 150 */ + { 2, 0, sys_munlock, "munlock" }, /* 151 */ + { 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 */ + { 5, 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, TD, sys_poll, "poll" }, /* 168 */ + { 3, 0, printargs, "nfsservctl" }, /* 169 */ + { 3, 0, sys_setresgid, "setresgid" }, /* 170 */ + { 3, 0, sys_getresgid, "getresgid" }, /* 171 */ + { 5, 0, sys_prctl, "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, TD, sys_pread, "pread", SYS_read }, /* 180 */ + { 5, TD, sys_pwrite, "pwrite", SYS_write }, /* 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, TD|TN, 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, TD, sys_ftruncate64, "ftruncate64" }, /* 194 */ + { 2, TF, sys_stat64, "stat64" }, /* 195 */ + { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ + { 2, TD, sys_fstat64, "fstat64" }, /* 197 */ + { 3, TF, sys_chown, "chown32" }, /* 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, TD, 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, "lchown32" }, /* 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 */ + { 3, TD, sys_getdents64, "getdents64" }, /* 220 */ + { 3, TD, sys_fcntl, "fcntl64" }, /* 221 */ + { 4, 0, printargs, "SYS_222" }, /* 222 */ + { 5, 0, printargs, "security" }, /* 223 */ + { 0, 0, printargs, "gettid" }, /* 224 */ + { 4, TD, sys_readahead, "readahead" }, /* 225 */ + { 5, TF, sys_setxattr, "setxattr" }, /* 226 */ + { 5, TF, sys_setxattr, "lsetxattr" }, /* 227 */ + { 5, TD, 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, TD, sys_fremovexattr, "fremovexattr" }, /* 237 */ + { 2, TS, sys_kill, "tkill" }, /* 238 */ + { 4, TD|TN, sys_sendfile64, "sendfile64" }, /* 239 */ + { 6, 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, 0, printargs, "alloc_hugepages" }, /* 250 */ + { 1, 0, printargs, "free_hugepages" }, /* 251 */ + { 1, TP, sys_exit, "exit_group", __NR_exit_group }, /* 252 */ + { 4, 0, printargs, "lookup_dcookie" }, /* 253 */ + { 1, 0, printargs, "bfin_spinlock" }, /* 254 */ + { 1, 0, sys_epoll_create, "epoll_create" }, /* 255 */ + { 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 256 */ + { 4, TD, sys_epoll_wait, "epoll_wait" }, /* 257 */ + { 5, 0, sys_remap_file_pages, "remap_file_pages" }, /* 258 */ + { 1, 0, printargs, "set_tid_address" }, /* 259 */ + { 3, 0, sys_timer_create, "timer_create" }, /* 260 */ + { 4, 0, sys_timer_settime, "timer_settime" }, /* 261 */ + { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 262 */ + { 1, 0, sys_timer_getoverrun, "timer_getoverrun" }, /* 263 */ + { 1, 0, sys_timer_delete, "timer_delete" }, /* 264 */ + { 2, 0, sys_clock_settime, "clock_settime" }, /* 265 */ + { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 266 */ + { 2, 0, sys_clock_getres, "clock_getres" }, /* 267 */ + { 4, 0, sys_clock_nanosleep, "clock_nanosleep" }, /* 268 */ + { 3, TF, sys_statfs64, "statfs64" }, /* 269 */ + { 3, TD, sys_fstatfs64, "fstatfs64" }, /* 270 */ + { 3, TS, sys_tgkill, "tgkill" }, /* 271 */ + { 2, TF, sys_utimes, "utimes" }, /* 272 */ + { 6, 0, sys_fadvise64_64, "fadvise64_64" }, /* 273 */ + { 5, 0, printargs, "vserver" }, /* 274 */ + { 6, 0, sys_mbind, "mbind" }, /* 275 */ + { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 276 */ + { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 277 */ + { 4, 0, sys_mq_open, "mq_open" }, /* 278 */ + { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 279 */ + { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 280 */ + { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 281 */ + { 2, 0, sys_mq_notify, "mq_notify" }, /* 282 */ + { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 283 */ + { 5, 0, printargs, "kexec_load" }, /* 284 */ + { 5, TP, sys_waitid, "waitid", SYS_waitid }, /* 285 */ + { 5, 0, printargs, "add_key" }, /* 286 */ + { 4, 0, printargs, "request_key" }, /* 287 */ + { 5, 0, printargs, "keyctl" }, /* 288 */ + { 3, 0, printargs, "ioprio_set" }, /* 289 */ + { 2, 0, printargs, "ioprio_get" }, /* 290 */ + { 0, TD, printargs, "inotify_init" }, /* 291 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 292 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 293 */ + { 4, 0, printargs, "migrate_pages" }, /* 294 */ + { 4, TD|TF, sys_openat, "openat" }, /* 295 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 296 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 297 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 298 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 299 */ + { 4, TD|TD, sys_newfstatat, "fstatat64" }, /* 300 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 301 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 302 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 303 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 304 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 305 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 306 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 307 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 308 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 309 */ + { 1, TP, sys_unshare, "unshare" }, /* 310 */ + { 2, 0, sys_sram_alloc, "sram_alloc" }, /* 311 */ + { 1, 0, printargs, "sram_free" }, /* 312 */ + { 3, 0, printargs, "dma_memcpy" }, /* 313 */ + { 3, TN, sys_accept, "accept" }, /* 314 */ + { 3, TN, sys_bind, "bind" }, /* 315 */ + { 3, TN, sys_connect, "connect" }, /* 316 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 317 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 318 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 319 */ + { 2, TN, sys_listen, "listen" }, /* 320 */ + { 4, TN, sys_recv, "recv", SYS_sub_recv }, /* 321 */ + { 6, TN, sys_recvfrom, "recvfrom", SYS_sub_recvfrom }, /* 322 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 323 */ + { 4, TN, sys_send, "send", SYS_sub_send }, /* 324 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 325 */ + { 6, TN, sys_sendto, "sendto", SYS_sub_sendto }, /* 326 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 327 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 328 */ + { 3, TN, sys_socket, "socket" }, /* 329 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 330 */ + { 4, TI, sys_semctl, "semctl" }, /* 331 */ + { 4, TI, sys_semget, "semget" }, /* 332 */ + { 4, TI, sys_semop, "semop" }, /* 333 */ + { 4, TI, sys_msgctl, "msgctl" }, /* 334 */ + { 4, TI, sys_msgget, "msgget" }, /* 335 */ + { 4, TI, sys_msgrcv, "msgrcv" }, /* 336 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 337 */ + { 4, TI, sys_shmat, "shmat" }, /* 338 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 339 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 340 */ + { 4, TI, sys_shmget, "shmget" }, /* 341 */ + { 6, TD, printargs, "splice" }, /* 342 */ + { 4, TD, printargs, "sync_file_range" }, /* 343 */ + { 4, TD, printargs, "tee" }, /* 344 */ + { 4, TD, printargs, "vmsplice" }, /* 345 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 346 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 347 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 348 */ + { 2, TD, sys_timerfd_create, "timerfd_create" }, /* 349 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 350 */ + { 5, 0, sys_pread, "pread64" }, /* 351 */ + { 5, 0, sys_pwrite, "pwrite64" }, /* 352 */ + { 5, 0, sys_fadvise64, "fadvise64" }, /* 353 */ + { 2, 0, printargs, "set_robust_list" }, /* 354 */ + { 3, 0, printargs, "get_robust_list" }, /* 355 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 356 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 357 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime" }, /* 358 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime" }, /* 359 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 360 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 361 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 362 */ + { 3, TD, sys_dup3, "dup3" }, /* 363 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 364 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 365 */ + { 5, TD, printargs, "preadv" }, /* 366 */ + { 5, TD, printargs, "pwritev" }, /* 367 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 368 */ + { 5, TD, printargs, "perf_event_open" }, /* 369 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 370 */
diff --git a/strace-4.5.20/linux/dummy.h b/strace-4.5.20/linux/dummy.h new file mode 100644 index 0000000..92e6886 --- /dev/null +++ b/strace-4.5.20/linux/dummy.h
@@ -0,0 +1,225 @@ +/* + * 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$ + */ + +/* 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_open +#define sys_fchdir sys_close +#define sys_setfsuid sys_setuid +#define sys_setfsgid sys_setgid +#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-4.5.20/linux/errnoent.h b/strace-4.5.20/linux/errnoent.h new file mode 100644 index 0000000..c52d1d0 --- /dev/null +++ b/strace-4.5.20/linux/errnoent.h
@@ -0,0 +1,535 @@ + "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 */ +#ifdef POWERPC + "EDEADLOCK", /* 58 */ +#else + "ERRNO_58", /* 58 */ +#endif + "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 */ + "ECANCELED", /* 125 */ + "ENOKEY", /* 126 */ + "EKEYEXPIRED", /* 127 */ + "EKEYREVOKED", /* 128 */ + "EKEYREJECTED", /* 129 */ + "EOWNERDEAD", /* 130 */ + "ENOTRECOVERABLE", /* 131 */ + "ERFKILL", /* 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 */ + "ERESTART_RESTARTBLOCK", /* 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 */ + "EIOCBQUEUED", /* 529 */ + "EIOCBRETRY", /* 530 */
diff --git a/strace-4.5.20/linux/hppa/errnoent.h b/strace-4.5.20/linux/hppa/errnoent.h new file mode 100644 index 0000000..2c92633 --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/hppa/ioctlent.h b/strace-4.5.20/linux/hppa/ioctlent.h new file mode 100644 index 0000000..7ddaaf5 --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/hppa/signalent.h b/strace-4.5.20/linux/hppa/signalent.h new file mode 100644 index 0000000..92e5565 --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/hppa/syscallent.h b/strace-4.5.20/linux/hppa/syscallent.h new file mode 100644 index 0000000..0d7d48c --- /dev/null +++ b/strace-4.5.20/linux/hppa/syscallent.h
@@ -0,0 +1,326 @@ +/* + * Copyright (c) 2001 Hewlett-Packard, Matthew Wilcox + * + * $Id$ + * + */ + + { 0, 0, sys_restart_syscall, "restart_syscall" }, /* 0 */ + { 1, TP, sys_exit, "exit" }, /* 1 */ + { 0, TP, sys_fork, "fork" }, /* 2 */ + { 3, TD, sys_read, "read" }, /* 3 */ + { 3, TD, sys_write, "write" }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TD, sys_close, "close" }, /* 6 */ + { 3, TP, sys_waitpid, "waitpid" }, /* 7 */ + { 2, TD|TF, sys_creat, "creat" }, /* 8 */ + { 2, TF, sys_link, "link" }, /* 9 */ + { 1, TF, sys_unlink, "unlink" }, /* 10 */ + { 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, TD, 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, TD, sys_dup, "dup" }, /* 41 */ + { 1, TD, 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, TD, sys_ioctl, "ioctl" }, /* 54 */ + { 3, TD, 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, TD, 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, TD, sys_ftruncate, "ftruncate" }, /* 93 */ + { 2, TD, sys_fchmod, "fchmod" }, /* 94 */ + { 3, TD, sys_fchown, "fchown" }, /* 95 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 96 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 97 */ + { 4, TN, sys_recv, "recv" }, /* 98 */ + { 2, TF, sys_statfs, "statfs" }, /* 99 */ + { 2, TD, 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, TD, sys_pread, "pread" }, /* 108 */ + { 5, TD, sys_pwrite, "pwrite" }, /* 109 */ + { 2, 0, sys_getcwd, "getcwd" }, /* 110 */ + { 0, 0, sys_vhangup, "vhangup" }, /* 111 */ + { 2, TD, 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, TD, sys_fsync, "fsync" }, /* 118 */ + { 3, 0, sys_madvise, "madvise" }, /* 119 */ + { 5, TP, sys_clone, "clone" }, /* 120 */ + { 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */ + { 4, TD|TN, 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 */ + { 2, 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, TD, sys_getdents, "getdents" }, /* 141 */ + { 5, TD, sys_select, "_newselect" }, /* 142 */ + { 2, TD, sys_flock, "flock" }, /* 143 */ + { 3, 0, sys_msync, "msync" }, /* 144 */ + { 3, TD, sys_readv, "readv" }, /* 145 */ + { 3, TD, sys_writev, "writev" }, /* 146 */ + { 1, 0, sys_getsid, "getsid" }, /* 147 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 148 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */ + { 2, 0, sys_mlock, "mlock" }, /* 150 */ + { 2, 0, sys_munlock, "munlock" }, /* 151 */ + { 1, 0, sys_mlockall, "mlockall" }, /* 152 */ + { 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 */ + { 5, 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, TD, 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 */ + { 3, TI, sys_shmat, "shmat" }, /* 192 */ + { 1, TI, sys_shmdt, "shmdt" }, /* 193 */ + { 3, TI, sys_shmget, "shmget" }, /* 194 */ + { 3, 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, TD, sys_ftruncate64, "ftruncate64" }, /* 200 */ + { 3, TD, sys_getdents64, "getdents64" }, /* 201 */ + { 3, TD, 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, TD, sys_readahead, "readahead" }, /* 207 */ + { 2, TS, sys_kill, "tkill" }, /* 208 */ + { 4, TD|TN, sys_sendfile, "sendfile64" }, /* 209 */ + { 6, 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, TD, sys_epoll_ctl, "epoll_ctl" }, /* 225 */ + { 4, TD, sys_epoll_wait, "epoll_wait" }, /* 226 */ + { 5, 0, printargs, "remap_file_pages" }, /* 227 */ + { 5, TI, sys_semtimedop, "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, TD, 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, TD, 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, "vserver" }, /* 263 */ + { 5, 0, printargs, "add_key" }, /* 264 */ + { 4, 0, printargs, "request_key" }, /* 265 */ + { 5, 0, printargs, "keyctl" }, /* 266 */ + { 3, 0, printargs, "ioprio_set" }, /* 267 */ + { 2, 0, printargs, "ioprio_get" }, /* 268 */ + { 0, TD, printargs, "inotify_init" }, /* 269 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 270 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 271 */ + { 4, 0, printargs, "migrate_pages" }, /* 272 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 273 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 274 */ + { 4, TD|TF, sys_openat, "openat" }, /* 275 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 276 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 277 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 278 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 279 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 280 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 281 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 282 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 283 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 284 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 285 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 286 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 287 */ + { 1, TP, sys_unshare, "unshare" }, /* 288 */ + { 2, 0, printargs, "set_robust_list" }, /* 289 */ + { 3, 0, printargs, "get_robust_list" }, /* 290 */ + { 6, TD, printargs, "splice" }, /* 291 */ + { 4, TD, printargs, "sync_file_range" }, /* 292 */ + { 4, TD, printargs, "tee" }, /* 293 */ + { 4, TD, printargs, "vmsplice" }, /* 294 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 295 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 296 */ + { 6, TD, sys_epoll_pwait, "epoll_pwait" }, /* 297 */ + { 3, TF, sys_statfs64, "statfs64" }, /* 298 */ + { 3, TD, sys_fstatfs64, "fstatfs64" }, /* 299 */ + { 4, 0, printargs, "kexec_load" }, /* 300 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 301 */ + { 3, TD, printargs, "signalfd" }, /* 302 */ + { 4, TD, printargs, "timerfd" }, /* 303 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 304 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 305 */ + { 2, TD, sys_timerfd_create, "timerfd_create" }, /* 306 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime" }, /* 307 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime" }, /* 308 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 309 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 310 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 311 */ + { 3, TD, sys_dup3, "dup3" }, /* 312 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 313 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 314 */ + { 5, TD, printargs, "preadv" }, /* 315 */ + { 5, TD, printargs, "pwritev" }, /* 316 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 317 */ + { 5, TD, printargs, "perf_event_open" }, /* 318 */
diff --git a/strace-4.5.20/linux/i386/syscallent.h b/strace-4.5.20/linux/i386/syscallent.h new file mode 100644 index 0000000..986433f --- /dev/null +++ b/strace-4.5.20/linux/i386/syscallent.h
@@ -0,0 +1,485 @@ +/* + * 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$ + */ + + { 0, 0, sys_restart_syscall, "restart_syscall" }, /* 0 */ + { 1, TP, sys_exit, "_exit", SYS_exit }, /* 1 */ + { 0, TP, sys_fork, "fork", SYS_fork }, /* 2 */ + { 3, TD, sys_read, "read", SYS_read }, /* 3 */ + { 3, TD, sys_write, "write", SYS_write }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TD, sys_close, "close" }, /* 6 */ + { 3, TP, sys_waitpid, "waitpid", SYS_wait4 }, /* 7 */ + { 2, TD|TF, sys_creat, "creat" }, /* 8 */ + { 2, TF, sys_link, "link" }, /* 9 */ + { 1, TF, sys_unlink, "unlink" }, /* 10 */ + { 3, TF|TP, sys_execve, "execve", 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 */ + { 3, TF, sys_chown, "lchown" }, /* 16 */ + { 0, 0, sys_break, "break" }, /* 17 */ + { 2, TF, sys_oldstat, "oldstat" }, /* 18 */ + { 3, TD, 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, TD, 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, TD, sys_dup, "dup" }, /* 41 */ + { 1, TD, sys_pipe, "pipe" }, /* 42 */ + { 1, 0, sys_times, "times" }, /* 43 */ + { 0, 0, sys_prof, "prof" }, /* 44 */ + { 1, 0, sys_brk, "brk" }, /* 45 */ + { 1, 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, TD, sys_ioctl, "ioctl" }, /* 54 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 55 */ + { 0, 0, sys_mpx, "mpx" }, /* 56 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 57 */ + { 2, 0, sys_ulimit, "ulimit" }, /* 58 */ + { 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, TD, 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, TD, sys_oldselect, "oldselect" }, /* 82 */ + { 2, TF, sys_symlink, "symlink" }, /* 83 */ + { 2, TF, sys_oldlstat, "oldlstat" }, /* 84 */ + { 3, TF, sys_readlink, "readlink" }, /* 85 */ + { 1, TF, sys_uselib, "uselib" }, /* 86 */ + { 1, TF, sys_swapon, "swapon" }, /* 87 */ + { 3, 0, sys_reboot, "reboot" }, /* 88 */ + { 3, TD, sys_readdir, "readdir" }, /* 89 */ + { 6, TD, sys_old_mmap, "old_mmap" }, /* 90 */ + { 2, 0, sys_munmap, "munmap" }, /* 91 */ + { 2, TF, sys_truncate, "truncate" }, /* 92 */ + { 2, TD, sys_ftruncate, "ftruncate" }, /* 93 */ + { 2, TD, sys_fchmod, "fchmod" }, /* 94 */ + { 3, TD, sys_fchown, "fchown" }, /* 95 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 96 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 97 */ + { 4, 0, sys_profil, "profil" }, /* 98 */ + { 2, TF, sys_statfs, "statfs" }, /* 99 */ + { 2, TD, sys_fstatfs, "fstatfs" }, /* 100 */ + { 3, 0, sys_ioperm, "ioperm" }, /* 101 */ + { 2, TD, 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, TD, 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, TD, 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 */ + { 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 */ + { 3, 0, sys_init_module, "init_module" }, /* 128 */ + { 2, 0, sys_delete_module, "delete_module" }, /* 129 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 131 */ + { 1, 0, sys_getpgid, "getpgid" }, /* 132 */ + { 1, TD, 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, TD, sys_llseek, "_llseek" }, /* 140 */ + { 3, TD, sys_getdents, "getdents" }, /* 141 */ + { 5, TD, sys_select, "select" }, /* 142 */ + { 2, TD, sys_flock, "flock" }, /* 143 */ + { 3, 0, sys_msync, "msync" }, /* 144 */ + { 3, TD, sys_readv, "readv", SYS_readv }, /* 145 */ + { 3, TD, sys_writev, "writev", SYS_writev }, /* 146 */ + { 1, 0, sys_getsid, "getsid" }, /* 147 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 148 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */ + { 2, 0, sys_mlock, "mlock" }, /* 150 */ + { 2, 0, sys_munlock, "munlock" }, /* 151 */ + { 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 */ + { 5, 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, TD, sys_poll, "poll" }, /* 168 */ + { 3, 0, printargs, "nfsservctl" }, /* 169 */ + { 3, 0, sys_setresgid, "setresgid" }, /* 170 */ + { 3, 0, sys_getresgid, "getresgid" }, /* 171 */ + { 5, 0, sys_prctl, "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, TD, sys_pread, "pread64", SYS_read }, /* 180 */ + { 5, TD, sys_pwrite, "pwrite64", SYS_write }, /* 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, TD|TN, 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, TD, sys_ftruncate64, "ftruncate64" }, /* 194 */ + { 2, TF, sys_stat64, "stat64" }, /* 195 */ + { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ + { 2, TD, 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_getegid, "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, TD, 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 */ + { 3, TD, sys_getdents64, "getdents64" }, /* 220 */ + { 3, TD, sys_fcntl, "fcntl64" }, /* 221 */ + { 4, 0, printargs, "SYS_222" }, /* 222 */ +/*TODO*/{ 5, 0, printargs, "security" }, /* 223 */ + { 0, 0, printargs, "gettid" }, /* 224 */ + { 4, TD, sys_readahead, "readahead" }, /* 225 */ + { 5, TF, sys_setxattr, "setxattr" }, /* 226 */ + { 5, TF, sys_setxattr, "lsetxattr" }, /* 227 */ + { 5, TD, 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, TD, sys_fremovexattr, "fremovexattr" }, /* 237 */ + { 2, TS, sys_kill, "tkill" }, /* 238 */ + { 4, TD|TN, sys_sendfile64, "sendfile64" }, /* 239 */ + { 6, 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, 0, 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, TD, sys_epoll_ctl, "epoll_ctl" }, /* 255 */ + { 4, TD, sys_epoll_wait, "epoll_wait" }, /* 256 */ + { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 257 */ + { 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, TD, sys_fstatfs64, "fstatfs64" }, /* 269 */ + { 3, TS, sys_tgkill, "tgkill" }, /* 270 */ + { 2, TF, sys_utimes, "utimes" }, /* 271 */ + { 6, 0, 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, "kexec_load" }, /* 283 */ + { 5, TP, sys_waitid, "waitid", SYS_waitid }, /* 284 */ + { 5, 0, printargs, "SYS_285" }, /* 285 */ + { 5, 0, printargs, "add_key" }, /* 286 */ + { 4, 0, printargs, "request_key" }, /* 287 */ + { 5, 0, printargs, "keyctl" }, /* 288 */ + { 3, 0, printargs, "ioprio_set" }, /* 289 */ + { 2, 0, printargs, "ioprio_get" }, /* 290 */ + { 0, TD, printargs, "inotify_init" }, /* 291 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 292 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 293 */ + { 4, 0, printargs, "migrate_pages" }, /* 294 */ + { 4, TD|TF, sys_openat, "openat" }, /* 295 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 296 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 297 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 298 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 299 */ + { 4, TD|TD, sys_newfstatat, "fstatat64" }, /* 300 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 301 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 302 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 303 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 304 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 305 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 306 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 307 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 308 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 309 */ + { 1, TP, sys_unshare, "unshare" }, /* 310 */ + { 2, 0, printargs, "set_robust_list" }, /* 311 */ + { 3, 0, printargs, "get_robust_list" }, /* 312 */ + { 6, TD, printargs, "splice" }, /* 313 */ + { 4, TD, printargs, "sync_file_range" }, /* 314 */ + { 4, TD, printargs, "tee" }, /* 315 */ + { 4, TD, printargs, "vmsplice" }, /* 316 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 317 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 318 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 319 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 320 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 321 */ + { 2, TD, sys_timerfd_create, "timerfd_create"}, /* 322 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 323 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 324 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime"}, /* 325 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime"}, /* 326 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 327 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 328 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 329 */ + { 3, TD, sys_dup3, "dup3" }, /* 330 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 331 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 332 */ + { 5, TD, printargs, "preadv" }, /* 333 */ + { 5, TD, printargs, "pwritev" }, /* 334 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 335 */ + { 5, TD, printargs, "perf_event_open"}, /* 336 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 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 */ + { 5, 0, printargs, "SYS_353" }, /* 353 */ + { 5, 0, printargs, "SYS_354" }, /* 354 */ + { 5, 0, printargs, "SYS_355" }, /* 355 */ + { 5, 0, printargs, "SYS_356" }, /* 356 */ + { 5, 0, printargs, "SYS_357" }, /* 357 */ + { 5, 0, printargs, "SYS_358" }, /* 358 */ + { 5, 0, printargs, "SYS_359" }, /* 359 */ + { 5, 0, printargs, "SYS_360" }, /* 360 */ + { 5, 0, printargs, "SYS_361" }, /* 361 */ + { 5, 0, printargs, "SYS_362" }, /* 362 */ + { 5, 0, printargs, "SYS_363" }, /* 363 */ + { 5, 0, printargs, "SYS_364" }, /* 364 */ + { 5, 0, printargs, "SYS_365" }, /* 365 */ + { 5, 0, printargs, "SYS_366" }, /* 366 */ + { 5, 0, printargs, "SYS_367" }, /* 367 */ + { 5, 0, printargs, "SYS_368" }, /* 368 */ + { 5, 0, printargs, "SYS_369" }, /* 369 */ + { 5, 0, printargs, "SYS_370" }, /* 370 */ + { 5, 0, printargs, "SYS_371" }, /* 371 */ + { 5, 0, printargs, "SYS_372" }, /* 372 */ + { 5, 0, printargs, "SYS_373" }, /* 373 */ + { 5, 0, printargs, "SYS_374" }, /* 374 */ + { 5, 0, printargs, "SYS_375" }, /* 375 */ + { 5, 0, printargs, "SYS_376" }, /* 376 */ + { 5, 0, printargs, "SYS_377" }, /* 377 */ + { 5, 0, printargs, "SYS_378" }, /* 378 */ + { 5, 0, printargs, "SYS_379" }, /* 379 */ + { 5, 0, printargs, "SYS_380" }, /* 380 */ + { 5, 0, printargs, "SYS_381" }, /* 381 */ + { 5, 0, printargs, "SYS_382" }, /* 382 */ + { 5, 0, printargs, "SYS_383" }, /* 383 */ + { 5, 0, printargs, "SYS_384" }, /* 384 */ + { 5, 0, printargs, "SYS_385" }, /* 385 */ + { 5, 0, printargs, "SYS_386" }, /* 386 */ + { 5, 0, printargs, "SYS_387" }, /* 387 */ + { 5, 0, printargs, "SYS_388" }, /* 388 */ + { 5, 0, printargs, "SYS_389" }, /* 389 */ + { 5, 0, printargs, "SYS_390" }, /* 390 */ + { 5, 0, printargs, "SYS_391" }, /* 391 */ + { 5, 0, printargs, "SYS_392" }, /* 392 */ + { 5, 0, printargs, "SYS_393" }, /* 393 */ + { 5, 0, printargs, "SYS_394" }, /* 394 */ + { 5, 0, printargs, "SYS_395" }, /* 395 */ + { 5, 0, printargs, "SYS_396" }, /* 396 */ + { 5, 0, printargs, "SYS_397" }, /* 397 */ + { 5, 0, printargs, "SYS_398" }, /* 398 */ + { 5, 0, printargs, "SYS_399" }, /* 399 */ + +#if SYS_socket_subcall != 400 + #error fix me +#endif + { 8, 0, printargs, "socket_subcall"}, /* 400 */ + { 3, TN, sys_socket, "socket" }, /* 401 */ + { 3, TN, sys_bind, "bind" }, /* 402 */ + { 3, TN, sys_connect, "connect" }, /* 403 */ + { 2, TN, sys_listen, "listen" }, /* 404 */ + { 3, TN, sys_accept, "accept" }, /* 405 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 406 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 407 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 408 */ + { 4, TN, sys_send, "send", SYS_sub_send }, /* 409 */ + { 4, TN, sys_recv, "recv", SYS_sub_recv }, /* 410 */ + { 6, TN, sys_sendto, "sendto", SYS_sub_sendto }, /* 411 */ + { 6, TN, sys_recvfrom, "recvfrom", SYS_sub_recvfrom }, /* 412 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 413 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 414 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 415 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 416 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 417 */ + { 4, TN, sys_accept4, "accept4" }, /* 418 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 419 */ + +#if SYS_ipc_subcall != 420 + #error fix me +#endif + { 4, 0, printargs, "ipc_subcall" }, /* 420 */ + { 4, TI, sys_semop, "semop" }, /* 421 */ + { 4, TI, sys_semget, "semget" }, /* 422 */ + { 4, TI, sys_semctl, "semctl" }, /* 423 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 424 */ + { 4, 0, printargs, "ipc_subcall" }, /* 425 */ + { 4, 0, printargs, "ipc_subcall" }, /* 426 */ + { 4, 0, printargs, "ipc_subcall" }, /* 427 */ + { 4, 0, printargs, "ipc_subcall" }, /* 428 */ + { 4, 0, printargs, "ipc_subcall" }, /* 429 */ + { 4, 0, printargs, "ipc_subcall" }, /* 430 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 431 */ + { 4, TI, sys_msgrcv, "msgrcv" }, /* 432 */ + { 4, TI, sys_msgget, "msgget" }, /* 433 */ + { 4, TI, sys_msgctl, "msgctl" }, /* 434 */ + { 4, 0, printargs, "ipc_subcall" }, /* 435 */ + { 4, 0, printargs, "ipc_subcall" }, /* 436 */ + { 4, 0, printargs, "ipc_subcall" }, /* 437 */ + { 4, 0, printargs, "ipc_subcall" }, /* 438 */ + { 4, 0, printargs, "ipc_subcall" }, /* 439 */ + { 4, 0, printargs, "ipc_subcall" }, /* 440 */ + { 4, TI, sys_shmat, "shmat" }, /* 441 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 442 */ + { 4, TI, sys_shmget, "shmget" }, /* 443 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 444 */
diff --git a/strace-4.5.20/linux/ia64/ioctlent.h b/strace-4.5.20/linux/ia64/ioctlent.h new file mode 100644 index 0000000..8cd2acd --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/ia64/syscallent.h b/strace-4.5.20/linux/ia64/syscallent.h new file mode 100644 index 0000000..4ba91fa --- /dev/null +++ b/strace-4.5.20/linux/ia64/syscallent.h
@@ -0,0 +1,1120 @@ +/* + * 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$ + */ + +/* + * 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 "i386/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 ../i386/syscallent.h so that this table + starts where that one leaves off. +*/ +#if SYS_ipc_subcall + SYS_ipc_nsubcalls != 445 +# error fix me +#endif + + { 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, TD, sys_read, "read" }, /* 1026 */ + { 3, TD, sys_write, "write" }, /* 1027 */ + { 3, TD|TF, sys_open, "open" }, /* 1028 */ + { 1, TD, 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, TD, sys_fsync, "fsync" }, /* 1051 */ + { 1, TD, 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, TD, sys_dup, "dup" }, /* 1057 */ + { 1, TD, 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, TD, sys_ioctl, "ioctl" }, /* 1065 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 1066 */ + { 1, 0, sys_umask, "umask" }, /* 1067 */ + { 1, TF, sys_chroot, "chroot" }, /* 1068 */ + { 2, 0, sys_ustat, "ustat" }, /* 1069 */ + { 2, TD, 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, TD, sys_select, "select" }, /* 1089 */ + { 3, TD, 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, TD, sys_ftruncate, "ftruncate" }, /* 1098 */ + { 2, TD, sys_fchmod, "fchmod" }, /* 1099 */ + { 3, TD, sys_fchown, "fchown" }, /* 1100 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 1101 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 1102 */ + { 2, TF, sys_statfs, "statfs" }, /* 1103 */ + { 2, TD, sys_fstatfs, "fstatfs" }, /* 1104 */ + { 3, 0, printargs, "gettid" }, /* 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, TD, 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 */ + { 2, 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, TD, sys_getdents, "getdents" }, /* 1144 */ + { 2, TD, sys_flock, "flock" }, /* 1145 */ + { 5, TD, sys_readv, "readv" }, /* 1146 */ + { 5, TD, sys_writev, "writev" }, /* 1147 */ + { 4, TD, sys_pread, "pread" }, /* 1148 */ + { 4, TD, 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 */ + { 5, 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, TD|TN, 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, sys_mincore, "mincore" }, /* 1208 */ + { 3, 0, sys_madvise, "madvise" }, /* 1209 */ + { 2, TF, sys_stat, "stat" }, /* 1210 */ + { 2, 0, sys_lstat, "lstat" }, /* 1211 */ + { 2, TD, sys_fstat, "fstat" }, /* 1212 */ + { 6, TP, sys_clone, "clone2" }, /* 1213 */ + { 3, TD, sys_getdents64, "getdents64" }, /* 1214 */ + { 2, 0, printargs, "getunwind" }, /* 1215 */ + { 4, TD, sys_readahead, "readahead" }, /* 1216 */ + { 5, TF, sys_setxattr, "setxattr" }, /* 1217 */ + { 5, TF, sys_setxattr, "lsetxattr" }, /* 1218 */ + { 5, TD, 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 */ + { 6, 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, 0, 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, TD, sys_epoll_ctl, "epoll_ctl" }, /* 1244 */ + { 4, TD, sys_epoll_wait, "epoll_wait" }, /* 1245 */ + { 0, 0, sys_restart_syscall, "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, "kexec_load" }, /* 1268 */ + { 5, 0, printargs, "vserver" }, /* 1269 */ + { 5, TP, sys_waitid, "waitid" }, /* 1270 */ + { 5, 0, printargs, "add_key" }, /* 1271 */ + { 4, 0, printargs, "request_key" }, /* 1272 */ + { 5, 0, printargs, "keyctl" }, /* 1273 */ + { 3, 0, printargs, "ioprio_set" }, /* 1274 */ + { 2, 0, printargs, "ioprio_get" }, /* 1275 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 1276 */ + { 0, TD, printargs, "inotify_init" }, /* 1277 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 1278 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 1279 */ + { 4, 0, printargs, "migrate_pages" }, /* 1280 */ + { 4, TD|TF, sys_openat, "openat" }, /* 1281 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 1282 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 1283 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 1284 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 1285 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 1286 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 1287 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 1288 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 1289 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 1290 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 1291 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 1292 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 1293 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 1294 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 1295 */ + { 1, TP, sys_unshare, "unshare" }, /* 1296 */ + { 2, 0, printargs, "set_robust_list" }, /* 1297 */ + { 3, 0, printargs, "get_robust_list" }, /* 1298 */ + { 6, TD, printargs, "splice" }, /* 1299 */ + { 4, TD, printargs, "sync_file_range" }, /* 1300 */ + { 4, TD, printargs, "tee" }, /* 1301 */ + { 4, TD, printargs, "vmsplice" }, /* 1302 */ + { 8, 0, printargs, "SYS_1303" }, /* 1303 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 1304 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 1305 */ + { 8, 0, printargs, "SYS_1306" }, /* 1306 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 1307 */ + { 4, TD, sys_timerfd, "timerfd" }, /* 1308 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 1309 */ + { 5, TD, printargs, "preadv" }, /* 1319 */ + { 5, TD, printargs, "pwritev" }, /* 1320 */ + { 4, TS, printargs, "rt_tgsigqueueinfo"}, /* 1321 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 1322 */
diff --git a/strace-4.5.20/linux/ioctlent.h b/strace-4.5.20/linux/ioctlent.h new file mode 100644 index 0000000..ad35905 --- /dev/null +++ b/strace-4.5.20/linux/ioctlent.h
@@ -0,0 +1,1428 @@ + /* 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", "BLKELVGET", 0x126a}, + {"linux/fs.h", "BLKELVSET", 0x126b}, + {"linux/fs.h", "BLKBSZGET", 0x1270}, + {"linux/fs.h", "BLKBSZSET", 0x1271}, + {"linux/fs.h", "BLKGETSIZE64", 0x1272}, + {"linux/fs.h", "BLKTRACESETUP", 0x1273}, + {"linux/fs.h", "BLKTRACESTART", 0x1274}, + {"linux/fs.h", "BLKTRACESTOP", 0x1275}, + {"linux/fs.h", "BLKTRACETEARDOWN", 0x1276}, + {"linux/fs.h", "BLKDISCARD", 0x1277}, + {"linux/fs.h", "BLKIOMIN", 0x1278}, + {"linux/fs.h", "BLKIOOPT", 0x1279}, + {"linux/fs.h", "BLKALIGNOFF", 0x127a}, + {"linux/fs.h", "BLKPBSZGET", 0x127b}, + {"linux/fs.h", "BLKDISCARDZEROES", 0x127c}, + {"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/firewire-cdev.h", "FW_CDEV_IOC_GET_INFO", 0x2300}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_SEND_REQUEST", 0x2301}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_ALLOCATE", 0x2302}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_DEALLOCATE", 0x2303}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_SEND_RESPONSE", 0x2304}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_INITIATE_BUS_RESET", 0x2305}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_ADD_DESCRIPTOR", 0x2306}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_REMOVE_DESCRIPTOR", 0x2307}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_CREATE_ISO_CONTEXT", 0x2308}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_QUEUE_ISO", 0x2309}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_START_ISO", 0x230a}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_STOP_ISO", 0x230b}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_GET_CYCLE_TIMER", 0x230c}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE", 0x230d}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE", 0x230e}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE", 0x230f}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE", 0x2310}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_GET_SPEED", 0x2311}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_SEND_BROADCAST_REQUEST", 0x2312}, + {"linux/firewire-cdev.h", "FW_CDEV_IOC_SEND_STREAM_PACKET", 0x2313}, + {"linux/perf_event.h", "PERF_EVENT_IOC_ENABLE", 0x2400}, + {"linux/perf_event.h", "PERF_EVENT_IOC_DISABLE", 0x2401}, + {"linux/perf_event.h", "PERF_EVENT_IOC_REFRESH", 0x2402}, + {"linux/perf_event.h", "PERF_EVENT_IOC_RESET", 0x2403}, + {"linux/perf_event.h", "PERF_EVENT_IOC_PERIOD", 0x2404}, + {"linux/perf_event.h", "PERF_EVENT_IOC_SET_OUTPUT", 0x2405}, + {"linux/perf_event.h", "PERF_EVENT_IOC_SET_FILTER", 0x2406}, + {"linux/suspend_ioctls.h", "SNAPSHOT_FREEZE", 0x3301}, + {"linux/suspend_ioctls.h", "SNAPSHOT_UNFREEZE", 0x3302}, + {"linux/suspend_ioctls.h", "SNAPSHOT_ATOMIC_RESTORE", 0x3304}, + {"linux/suspend_ioctls.h", "SNAPSHOT_FREE", 0x3305}, + {"linux/suspend_ioctls.h", "SNAPSHOT_FREE_SWAP_PAGES", 0x3309}, + {"linux/suspend_ioctls.h", "SNAPSHOT_S2RAM", 0x330b}, + {"linux/suspend_ioctls.h", "SNAPSHOT_SET_SWAP_AREA", 0x330d}, + {"linux/suspend_ioctls.h", "SNAPSHOT_GET_IMAGE_SIZE", 0x330e}, + {"linux/suspend_ioctls.h", "SNAPSHOT_PLATFORM_SUPPORT", 0x330f}, + {"linux/suspend_ioctls.h", "SNAPSHOT_POWER_OFF", 0x3310}, + {"linux/suspend_ioctls.h", "SNAPSHOT_CREATE_IMAGE", 0x3311}, + {"linux/suspend_ioctls.h", "SNAPSHOT_PREF_IMAGE_SIZE", 0x3312}, + {"linux/suspend_ioctls.h", "SNAPSHOT_AVAIL_SWAP_SIZE", 0x3313}, + {"linux/suspend_ioctls.h", "SNAPSHOT_ALLOC_SWAP_PAGE", 0x3314}, + {"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/agpgart.h", "AGPIOC_CHIPSET_FLUSH", 0x410a}, + {"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", "EVIOCSREP", 0x4503}, + {"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/ivtvfb.h", "FBIO_WAITFORVSYNC", 0x4620}, + {"linux/arcfb.h", "FBIO_WAITEVENT", 0x4688}, + {"linux/arcfb.h", "FBIO_GETCONTROL2", 0x4689}, + {"linux/gigaset_dev.h", "GIGASET_REDIR", 0x4700}, + {"linux/gigaset_dev.h", "GIGASET_CONFIG", 0x4701}, + {"linux/gigaset_dev.h", "GIGASET_BRKCHARS", 0x4702}, + {"linux/gigaset_dev.h", "GIGASET_VERSION", 0x4703}, + {"linux/hidraw.h", "HIDIOCGRDESCSIZE", 0x4801}, + {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801}, + {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802}, + {"linux/hidraw.h", "HIDIOCGRDESC", 0x4802}, + {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803}, + {"linux/hidraw.h", "HIDIOCGRAWINFO", 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/hiddev.h", "HIDIOCGUSAGES", 0x4813}, + {"linux/hiddev.h", "HIDIOCSUSAGES", 0x4814}, + {"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/kd.h", "KDGKBDIACRUC", 0x4bfa}, + {"linux/kd.h", "KDSKBDIACRUC", 0x4bfb}, + {"asm/mtrr.h", "MTRRIOC_ADD_ENTRY", 0x4d00}, + {"asm/mce.h", "MCE_GET_RECORD_LEN", 0x4d01}, + {"asm/mtrr.h", "MTRRIOC_SET_ENTRY", 0x4d01}, + {"asm/mce.h", "MCE_GET_LOG_LEN", 0x4d02}, + {"asm/mtrr.h", "MTRRIOC_DEL_ENTRY", 0x4d02}, + {"asm/mce.h", "MCE_GETCLEAR_FLAGS", 0x4d03}, + {"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_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/rfkill.h", "RFKILL_IOCTL_NOINPUT", 0x5201}, + {"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}, + {"asm-generic/ioctls.h", "TCGETS", 0x5401}, + {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402}, + {"asm-generic/ioctls.h", "TCSETS", 0x5402}, + {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403}, + {"asm-generic/ioctls.h", "TCSETSW", 0x5403}, + {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404}, + {"asm-generic/ioctls.h", "TCSETSF", 0x5404}, + {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405}, + {"asm-generic/ioctls.h", "TCGETA", 0x5405}, + {"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0x5406}, + {"asm-generic/ioctls.h", "TCSETA", 0x5406}, + {"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x5407}, + {"asm-generic/ioctls.h", "TCSETAW", 0x5407}, + {"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x5408}, + {"asm-generic/ioctls.h", "TCSETAF", 0x5408}, + {"asm-generic/ioctls.h", "TCSBRK", 0x5409}, + {"asm-generic/ioctls.h", "TCXONC", 0x540a}, + {"asm-generic/ioctls.h", "TCFLSH", 0x540b}, + {"asm-generic/ioctls.h", "TIOCEXCL", 0x540c}, + {"asm-generic/ioctls.h", "TIOCNXCL", 0x540d}, + {"asm-generic/ioctls.h", "TIOCSCTTY", 0x540e}, + {"asm-generic/ioctls.h", "TIOCGPGRP", 0x540f}, + {"asm-generic/ioctls.h", "TIOCSPGRP", 0x5410}, + {"asm-generic/ioctls.h", "TIOCOUTQ", 0x5411}, + {"asm-generic/ioctls.h", "TIOCSTI", 0x5412}, + {"asm-generic/ioctls.h", "TIOCGWINSZ", 0x5413}, + {"asm-generic/ioctls.h", "TIOCSWINSZ", 0x5414}, + {"asm-generic/ioctls.h", "TIOCMGET", 0x5415}, + {"asm-generic/ioctls.h", "TIOCMBIS", 0x5416}, + {"asm-generic/ioctls.h", "TIOCMBIC", 0x5417}, + {"asm-generic/ioctls.h", "TIOCMSET", 0x5418}, + {"asm-generic/ioctls.h", "TIOCGSOFTCAR", 0x5419}, + {"asm-generic/ioctls.h", "TIOCSSOFTCAR", 0x541a}, + {"asm-generic/ioctls.h", "FIONREAD", 0x541b}, + {"asm-generic/ioctls.h", "TIOCLINUX", 0x541c}, + {"asm-generic/ioctls.h", "TIOCCONS", 0x541d}, + {"asm-generic/ioctls.h", "TIOCGSERIAL", 0x541e}, + {"asm-generic/ioctls.h", "TIOCSSERIAL", 0x541f}, + {"asm-generic/ioctls.h", "TIOCPKT", 0x5420}, + {"asm-generic/ioctls.h", "FIONBIO", 0x5421}, + {"asm-generic/ioctls.h", "TIOCNOTTY", 0x5422}, + {"asm-generic/ioctls.h", "TIOCSETD", 0x5423}, + {"asm-generic/ioctls.h", "TIOCGETD", 0x5424}, + {"asm-generic/ioctls.h", "TCSBRKP", 0x5425}, + {"asm-generic/ioctls.h", "TIOCSBRK", 0x5427}, + {"asm-generic/ioctls.h", "TIOCCBRK", 0x5428}, + {"asm-generic/ioctls.h", "TIOCGSID", 0x5429}, + {"asm-generic/ioctls.h", "TCGETS2", 0x542a}, + {"asm-generic/ioctls.h", "TCSETS2", 0x542b}, + {"asm-generic/ioctls.h", "TCSETSW2", 0x542c}, + {"asm-generic/ioctls.h", "TCSETSF2", 0x542d}, + {"asm-generic/ioctls.h", "TIOCGRS485", 0x542e}, + {"asm-generic/ioctls.h", "TIOCSRS485", 0x542f}, + {"asm-generic/ioctls.h", "TIOCGPTN", 0x5430}, + {"asm-generic/ioctls.h", "TIOCSPTLCK", 0x5431}, + {"asm-generic/ioctls.h", "TCGETX", 0x5432}, + {"asm-generic/ioctls.h", "TCSETX", 0x5433}, + {"asm-generic/ioctls.h", "TCSETXF", 0x5434}, + {"asm-generic/ioctls.h", "TCSETXW", 0x5435}, + {"asm-generic/ioctls.h", "FIONCLEX", 0x5450}, + {"asm-generic/ioctls.h", "FIOCLEX", 0x5451}, + {"asm-generic/ioctls.h", "FIOASYNC", 0x5452}, + {"asm-generic/ioctls.h", "TIOCSERCONFIG", 0x5453}, + {"asm-generic/ioctls.h", "TIOCSERGWILD", 0x5454}, + {"asm-generic/ioctls.h", "TIOCSERSWILD", 0x5455}, + {"asm-generic/ioctls.h", "TIOCGLCKTRMIOS", 0x5456}, + {"asm-generic/ioctls.h", "TIOCSLCKTRMIOS", 0x5457}, + {"asm-generic/ioctls.h", "TIOCSERGSTRUCT", 0x5458}, + {"asm-generic/ioctls.h", "TIOCSERGETLSR", 0x5459}, + {"asm-generic/ioctls.h", "TIOCSERGETMULTI", 0x545a}, + {"asm-generic/ioctls.h", "TIOCSERSETMULTI", 0x545b}, + {"asm-generic/ioctls.h", "TIOCMIWAIT", 0x545c}, + {"asm-generic/ioctls.h", "TIOCGICOUNT", 0x545d}, + {"asm-generic/ioctls.h", "TIOCGHAYESESP", 0x545e}, + {"asm-generic/ioctls.h", "TIOCSHAYESESP", 0x545f}, + {"asm-generic/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/if_tun.h", "TUNSETLINK", 0x54cd}, + {"linux/if_tun.h", "TUNSETGROUP", 0x54ce}, + {"linux/if_tun.h", "TUNGETFEATURES", 0x54cf}, + {"linux/if_tun.h", "TUNSETOFFLOAD", 0x54d0}, + {"linux/if_tun.h", "TUNSETTXFILTER", 0x54d1}, + {"linux/if_tun.h", "TUNGETIFF", 0x54d2}, + {"linux/if_tun.h", "TUNGETSNDBUF", 0x54d3}, + {"linux/if_tun.h", "TUNSETSNDBUF", 0x54d4}, + {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500}, + {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL32", 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_BULK32", 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_SUBMITURB32", 0x550a}, + {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b}, + {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c}, + {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB32", 0x550c}, + {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d}, + {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY32", 0x550d}, + {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e}, + {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL32", 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_IOCTL32", 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/usbdevice_fs.h", "USBDEVFS_CLAIM_PORT", 0x5518}, + {"linux/usbdevice_fs.h", "USBDEVFS_RELEASE_PORT", 0x5519}, + {"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/uinput.h", "UI_SET_PHYS", 0x556c}, + {"linux/uinput.h", "UI_SET_SWBIT", 0x556d}, + {"linux/uinput.h", "UI_BEGIN_FF_UPLOAD", 0x55c8}, + {"linux/uinput.h", "UI_END_FF_UPLOAD", 0x55c9}, + {"linux/uinput.h", "UI_BEGIN_FF_ERASE", 0x55ca}, + {"linux/uinput.h", "UI_END_FF_ERASE", 0x55cb}, + {"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/vt.h", "VT_ACTIVATE", 0x5606}, + {"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/vt.h", "VT_GETHIFONTMASK", 0x560d}, + {"linux/videodev2.h", "VIDIOC_OVERLAY", 0x560e}, + {"linux/videodev2.h", "VIDIOC_OVERLAY_OLD", 0x560e}, + {"linux/vt.h", "VT_WAITEVENT", 0x560e}, + {"linux/videodev2.h", "VIDIOC_QBUF", 0x560f}, + {"linux/vt.h", "VT_SETACTIVATE", 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_S_PARM_OLD", 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_S_CTRL_OLD", 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_G_AUDIO_OLD", 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_G_AUDOUT_OLD", 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_CROPCAP_OLD", 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/videodev2.h", "VIDIOC_G_SLICED_VBI_CAP", 0x5645}, + {"linux/videodev2.h", "VIDIOC_LOG_STATUS", 0x5646}, + {"linux/videodev2.h", "VIDIOC_G_EXT_CTRLS", 0x5647}, + {"linux/videodev2.h", "VIDIOC_S_EXT_CTRLS", 0x5648}, + {"linux/videodev2.h", "VIDIOC_TRY_EXT_CTRLS", 0x5649}, + {"linux/videodev2.h", "VIDIOC_ENUM_FRAMESIZES", 0x564a}, + {"linux/videodev2.h", "VIDIOC_ENUM_FRAMEINTERVALS", 0x564b}, + {"linux/videodev2.h", "VIDIOC_G_ENC_INDEX", 0x564c}, + {"linux/videodev2.h", "VIDIOC_ENCODER_CMD", 0x564d}, + {"linux/videodev2.h", "VIDIOC_TRY_ENCODER_CMD", 0x564e}, + {"linux/videodev2.h", "VIDIOC_DBG_S_REGISTER", 0x564f}, + {"linux/videodev2.h", "VIDIOC_DBG_G_REGISTER", 0x5650}, + {"linux/videodev2.h", "VIDIOC_DBG_G_CHIP_IDENT", 0x5651}, + {"linux/videodev2.h", "VIDIOC_S_HW_FREQ_SEEK", 0x5652}, + {"linux/videodev2.h", "VIDIOC_ENUM_DV_PRESETS", 0x5653}, + {"linux/videodev2.h", "VIDIOC_S_DV_PRESET", 0x5654}, + {"linux/videodev2.h", "VIDIOC_G_DV_PRESET", 0x5655}, + {"linux/videodev2.h", "VIDIOC_QUERY_DV_PRESET", 0x5656}, + {"linux/videodev2.h", "VIDIOC_S_DV_TIMINGS", 0x5657}, + {"linux/videodev2.h", "VIDIOC_G_DV_TIMINGS", 0x5658}, + {"linux/ivtvfb.h", "IVTVFB_IOC_DMA_FRAME", 0x56c0}, + {"linux/ivtv.h", "IVTV_IOC_DMA_FRAME", 0x56c0}, + {"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/watchdog.h", "WDIOC_SETPRETIMEOUT", 0x5708}, + {"linux/watchdog.h", "WDIOC_GETPRETIMEOUT", 0x5709}, + {"linux/watchdog.h", "WDIOC_GETTIMELEFT", 0x570a}, + {"linux/pktcdvd.h", "PACKET_CTRL_CMD", 0x5801}, + {"linux/fs.h", "FIFREEZE", 0x5877}, + {"linux/fs.h", "FITHAW", 0x5878}, + {"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/atmdev.h", "ATM_ADDLECSADDR", 0x618e}, + {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f}, + {"linux/atmdev.h", "ATM_DELLECSADDR", 0x618f}, + {"linux/atmdev.h", "ATM_GETLECSADDR", 0x6190}, + {"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/atmdev.h", "ATM_ADDPARTY", 0x61f4}, + {"linux/atmdev.h", "COMPAT_ATM_ADDPARTY", 0x61f4}, + {"linux/atmdev.h", "ATM_DROPPARTY", 0x61f5}, + {"linux/cm4000_cs.h", "CM_IOCGSTATUS", 0x6300}, + {"linux/chio.h", "CHIOMOVE", 0x6301}, + {"linux/cm4000_cs.h", "CM_IOCGATR", 0x6301}, + {"linux/chio.h", "CHIOEXCHANGE", 0x6302}, + {"linux/cm4000_cs.h", "CM_IOCSPTS", 0x6302}, + {"linux/chio.h", "CHIOPOSITION", 0x6303}, + {"linux/cm4000_cs.h", "CM_IOCSRDR", 0x6303}, + {"linux/chio.h", "CHIOGPICKER", 0x6304}, + {"linux/cm4000_cs.h", "CM_IOCARDOFF", 0x6304}, + {"linux/chio.h", "CHIOSPICKER", 0x6305}, + {"linux/chio.h", "CHIOGPARAMS", 0x6306}, + {"linux/chio.h", "CHIOGSTATUS", 0x6308}, + {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a}, + {"linux/chio.h", "CHIOGELEM", 0x6310}, + {"linux/chio.h", "CHIOINITELEM", 0x6311}, + {"linux/chio.h", "CHIOSVOLTAG", 0x6312}, + {"linux/chio.h", "CHIOGVPARAMS", 0x6313}, + {"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}, + {"asm/msr.h", "X86_IOC_RDMSR_REGS", 0x63a0}, + {"asm/msr.h", "X86_IOC_WRMSR_REGS", 0x63a1}, + {"linux/cm4000_cs.h", "CM_IOSDBGLVL", 0x63fa}, + {"linux/fs.h", "FS_IOC32_GETFLAGS", 0x6601}, + {"linux/fs.h", "FS_IOC_GETFLAGS", 0x6601}, + {"linux/fs.h", "FS_IOC32_SETFLAGS", 0x6602}, + {"linux/fs.h", "FS_IOC_SETFLAGS", 0x6602}, + {"linux/ext2_fs.h", "EXT2_IOC_GETRSVSZ", 0x6605}, + {"linux/ext2_fs.h", "EXT2_IOC_SETRSVSZ", 0x6606}, + {"linux/fs.h", "FS_IOC_FIEMAP", 0x660b}, + {"linux/hpet.h", "HPET_IE_ON", 0x6801}, + {"linux/hpet.h", "HPET_IE_OFF", 0x6802}, + {"linux/hpet.h", "HPET_INFO", 0x6803}, + {"linux/hpet.h", "HPET_EPI", 0x6804}, + {"linux/hpet.h", "HPET_DPI", 0x6805}, + {"linux/hpet.h", "HPET_IRQFREQ", 0x6806}, + {"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/i2o-dev.h", "I2OPASSTHRU", 0x690c}, + {"linux/i2o-dev.h", "I2OPASSTHRU32", 0x690c}, + {"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/ipmi.h", "IPMICTL_SEND_COMMAND_SETTIME", 0x6915}, + {"linux/ipmi.h", "IPMICTL_SET_TIMING_PARMS_CMD", 0x6916}, + {"linux/ipmi.h", "IPMICTL_GET_TIMING_PARMS_CMD", 0x6917}, + {"linux/ipmi.h", "IPMICTL_REGISTER_FOR_CMD_CHANS", 0x691c}, + {"linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD_CHANS", 0x691d}, + {"linux/ipmi.h", "IPMICTL_GET_MAINTENANCE_MODE_CMD", 0x691e}, + {"linux/ipmi.h", "IPMICTL_SET_MAINTENANCE_MODE_CMD", 0x691f}, + {"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/mmtimer.h", "MMTIMER_GETOFFSET", 0x6d00}, + {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00}, + {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01}, + {"linux/mmtimer.h", "MMTIMER_GETRES", 0x6d01}, + {"linux/mtio.h", "MTIOCTOP", 0x6d01}, + {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01}, + {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02}, + {"linux/mmtimer.h", "MMTIMER_GETFREQ", 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/mmtimer.h", "MMTIMER_GETBITS", 0x6d04}, + {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05}, + {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06}, + {"linux/mmtimer.h", "MMTIMER_MMAPAVAIL", 0x6d06}, + {"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07}, + {"linux/synclink.h", "MGSL_IOCWAITEVENT", 0x6d08}, + {"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09}, + {"linux/mmtimer.h", "MMTIMER_GETCOUNTER", 0x6d09}, + {"linux/synclink.h", "MGSL_IOCSIF", 0x6d0a}, + {"linux/synclink.h", "MGSL_IOCGIF", 0x6d0b}, + {"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f}, + {"linux/synclink.h", "MGSL_IOCSGPIO", 0x6d10}, + {"linux/synclink.h", "MGSL_IOCGGPIO", 0x6d11}, + {"linux/synclink.h", "MGSL_IOCWAITGPIO", 0x6d12}, + {"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/phantom.h", "PHN_GET_REG", 0x7000}, + {"linux/phantom.h", "PHN_SET_REG", 0x7001}, + {"linux/rtc.h", "RTC_AIE_ON", 0x7001}, + {"linux/phantom.h", "PHN_GET_REGS", 0x7002}, + {"linux/rtc.h", "RTC_AIE_OFF", 0x7002}, + {"linux/phantom.h", "PHN_SET_REGS", 0x7003}, + {"linux/rtc.h", "RTC_UIE_ON", 0x7003}, + {"linux/phantom.h", "PHN_NOT_OH", 0x7004}, + {"linux/rtc.h", "RTC_UIE_OFF", 0x7004}, + {"linux/phantom.h", "PHN_GETREG", 0x7005}, + {"linux/rtc.h", "RTC_PIE_ON", 0x7005}, + {"linux/phantom.h", "PHN_SETREG", 0x7006}, + {"linux/rtc.h", "RTC_PIE_OFF", 0x7006}, + {"linux/phantom.h", "PHN_GETREGS", 0x7007}, + {"linux/rtc.h", "RTC_ALM_SET", 0x7007}, + {"linux/phantom.h", "PHN_SETREGS", 0x7008}, + {"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/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/pps.h", "PPS_GETPARAMS", 0x70a1}, + {"linux/pps.h", "PPS_SETPARAMS", 0x70a2}, + {"linux/pps.h", "PPS_GETCAP", 0x70a3}, + {"linux/pps.h", "PPS_FETCH", 0x70a4}, + {"linux/serio.h", "SPIOCSTYPE", 0x7101}, + {"linux/videotext.h", "VTXIOCGETINFO_OLD", 0x7101}, + {"linux/videotext.h", "VTXIOCCLRPAGE_OLD", 0x7102}, + {"linux/videotext.h", "VTXIOCCLRFOUND_OLD", 0x7103}, + {"linux/videotext.h", "VTXIOCPAGEREQ_OLD", 0x7104}, + {"linux/videotext.h", "VTXIOCGETSTAT_OLD", 0x7105}, + {"linux/videotext.h", "VTXIOCGETPAGE_OLD", 0x7106}, + {"linux/videotext.h", "VTXIOCSTOPDAU_OLD", 0x7107}, + {"linux/videotext.h", "VTXIOCPUTPAGE_OLD", 0x7108}, + {"linux/videotext.h", "VTXIOCSETDISP_OLD", 0x7109}, + {"linux/videotext.h", "VTXIOCPUTSTAT_OLD", 0x710a}, + {"linux/videotext.h", "VTXIOCCLRCACHE_OLD", 0x710b}, + {"linux/videotext.h", "VTXIOCSETVIRT_OLD", 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/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201}, + {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202}, + {"linux/msdos_fs.h", "FAT_IOCTL_GET_ATTRIBUTES", 0x7210}, + {"linux/msdos_fs.h", "FAT_IOCTL_SET_ATTRIBUTES", 0x7211}, + {"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", "PPPIOCGL2TPSTATS", 0x7436}, + {"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/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/fs.h", "FS_IOC32_GETVERSION", 0x7601}, + {"linux/fs.h", "FS_IOC_GETVERSION", 0x7601}, + {"linux/videodev.h", "VIDIOCGCAP", 0x7601}, + {"linux/fs.h", "FS_IOC32_SETVERSION", 0x7602}, + {"linux/fs.h", "FS_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/sonypi.h", "SONYPI_IOCGFAN", 0x760a}, + {"linux/videodev.h", "VIDIOCSWIN", 0x760a}, + {"linux/sonypi.h", "SONYPI_IOCSFAN", 0x760b}, + {"linux/videodev.h", "VIDIOCGFBUF", 0x760b}, + {"linux/sonypi.h", "SONYPI_IOCGTEMP", 0x760c}, + {"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/videotext.h", "VTXIOCGETINFO", 0x8101}, + {"linux/videotext.h", "VTXIOCCLRPAGE", 0x8102}, + {"linux/videotext.h", "VTXIOCCLRFOUND", 0x8103}, + {"linux/videotext.h", "VTXIOCPAGEREQ", 0x8104}, + {"linux/videotext.h", "VTXIOCGETSTAT", 0x8105}, + {"linux/videotext.h", "VTXIOCGETPAGE", 0x8106}, + {"linux/videotext.h", "VTXIOCSTOPDAU", 0x8107}, + {"linux/videotext.h", "VTXIOCPUTPAGE", 0x8108}, + {"linux/videotext.h", "VTXIOCSETDISP", 0x8109}, + {"linux/videotext.h", "VTXIOCPUTSTAT", 0x810a}, + {"linux/videotext.h", "VTXIOCCLRCACHE", 0x810b}, + {"linux/videotext.h", "VTXIOCSETVIRT", 0x810c}, + {"asm-generic/sockios.h", "FIOSETOWN", 0x8901}, + {"asm-generic/sockios.h", "SIOCSPGRP", 0x8902}, + {"asm-generic/sockios.h", "FIOGETOWN", 0x8903}, + {"asm-generic/sockios.h", "SIOCGPGRP", 0x8904}, + {"asm-generic/sockios.h", "SIOCATMARK", 0x8905}, + {"asm-generic/sockios.h", "SIOCGSTAMP", 0x8906}, + {"asm-generic/sockios.h", "SIOCGSTAMPNS", 0x8907}, + {"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", "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", "SIOCBRADDBR", 0x89a0}, + {"linux/sockios.h", "SIOCBRDELBR", 0x89a1}, + {"linux/sockios.h", "SIOCBRADDIF", 0x89a2}, + {"linux/sockios.h", "SIOCBRDELIF", 0x89a3}, + {"linux/sockios.h", "SIOCSHWTSTAMP", 0x89b0}, + {"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", "SIOCSIWMLME", 0x8b16}, + {"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", "SIOCSIWGENIE", 0x8b30}, + {"linux/wireless.h", "SIOCGIWGENIE", 0x8b31}, + {"linux/wireless.h", "SIOCSIWAUTH", 0x8b32}, + {"linux/wireless.h", "SIOCGIWAUTH", 0x8b33}, + {"linux/wireless.h", "SIOCSIWENCODEEXT", 0x8b34}, + {"linux/wireless.h", "SIOCGIWENCODEEXT", 0x8b35}, + {"linux/wireless.h", "SIOCSIWPMKSA", 0x8b36}, + {"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/auto_fs4.h", "AUTOFS_IOC_PROTOSUBVER", 0x9367}, + {"linux/auto_fs4.h", "AUTOFS_IOC_ASKUMOUNT", 0x9370}, + {"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/nbd.h", "NBD_SET_TIMEOUT", 0xab09}, + {"linux/raw.h", "RAW_SETBIND", 0xac00}, + {"linux/raw.h", "RAW_GETBIND", 0xac01}, + {"linux/kvm.h", "KVM_GET_API_VERSION", 0xae00}, + {"linux/kvm.h", "KVM_CREATE_VM", 0xae01}, + {"linux/kvm.h", "KVM_GET_MSR_INDEX_LIST", 0xae02}, + {"linux/kvm.h", "KVM_CHECK_EXTENSION", 0xae03}, + {"linux/kvm.h", "KVM_GET_VCPU_MMAP_SIZE", 0xae04}, + {"linux/kvm.h", "KVM_GET_SUPPORTED_CPUID", 0xae05}, + {"linux/kvm.h", "KVM_S390_ENABLE_SIE", 0xae06}, + {"linux/kvm.h", "KVM_SET_MEMORY_REGION", 0xae40}, + {"linux/kvm.h", "KVM_CREATE_VCPU", 0xae41}, + {"linux/kvm.h", "KVM_GET_DIRTY_LOG", 0xae42}, + {"linux/kvm.h", "KVM_SET_MEMORY_ALIAS", 0xae43}, + {"linux/kvm.h", "KVM_SET_NR_MMU_PAGES", 0xae44}, + {"linux/kvm.h", "KVM_GET_NR_MMU_PAGES", 0xae45}, + {"linux/kvm.h", "KVM_SET_USER_MEMORY_REGION", 0xae46}, + {"linux/kvm.h", "KVM_SET_TSS_ADDR", 0xae47}, + {"linux/kvm.h", "KVM_SET_IDENTITY_MAP_ADDR", 0xae48}, + {"linux/kvm.h", "KVM_CREATE_IRQCHIP", 0xae60}, + {"linux/kvm.h", "KVM_IRQ_LINE", 0xae61}, + {"linux/kvm.h", "KVM_GET_IRQCHIP", 0xae62}, + {"linux/kvm.h", "KVM_SET_IRQCHIP", 0xae63}, + {"linux/kvm.h", "KVM_CREATE_PIT", 0xae64}, + {"linux/kvm.h", "KVM_GET_PIT", 0xae65}, + {"linux/kvm.h", "KVM_SET_PIT", 0xae66}, + {"linux/kvm.h", "KVM_IRQ_LINE_STATUS", 0xae67}, + {"linux/kvm.h", "KVM_ASSIGN_PCI_DEVICE", 0xae69}, + {"linux/kvm.h", "KVM_SET_GSI_ROUTING", 0xae6a}, + {"linux/kvm.h", "KVM_ASSIGN_DEV_IRQ", 0xae70}, + {"linux/kvm.h", "KVM_REINJECT_CONTROL", 0xae71}, + {"linux/kvm.h", "KVM_DEASSIGN_PCI_DEVICE", 0xae72}, + {"linux/kvm.h", "KVM_ASSIGN_SET_MSIX_NR", 0xae73}, + {"linux/kvm.h", "KVM_ASSIGN_SET_MSIX_ENTRY", 0xae74}, + {"linux/kvm.h", "KVM_DEASSIGN_DEV_IRQ", 0xae75}, + {"linux/kvm.h", "KVM_IRQFD", 0xae76}, + {"linux/kvm.h", "KVM_CREATE_PIT2", 0xae77}, + {"linux/kvm.h", "KVM_SET_BOOT_CPU_ID", 0xae78}, + {"linux/kvm.h", "KVM_IOEVENTFD", 0xae79}, + {"linux/kvm.h", "KVM_XEN_HVM_CONFIG", 0xae7a}, + {"linux/kvm.h", "KVM_SET_CLOCK", 0xae7b}, + {"linux/kvm.h", "KVM_GET_CLOCK", 0xae7c}, + {"linux/kvm.h", "KVM_RUN", 0xae80}, + {"linux/kvm.h", "KVM_GET_REGS", 0xae81}, + {"linux/kvm.h", "KVM_SET_REGS", 0xae82}, + {"linux/kvm.h", "KVM_GET_SREGS", 0xae83}, + {"linux/kvm.h", "KVM_SET_SREGS", 0xae84}, + {"linux/kvm.h", "KVM_TRANSLATE", 0xae85}, + {"linux/kvm.h", "KVM_INTERRUPT", 0xae86}, + {"linux/kvm.h", "KVM_GET_MSRS", 0xae88}, + {"linux/kvm.h", "KVM_SET_MSRS", 0xae89}, + {"linux/kvm.h", "KVM_SET_CPUID", 0xae8a}, + {"linux/kvm.h", "KVM_SET_SIGNAL_MASK", 0xae8b}, + {"linux/kvm.h", "KVM_GET_FPU", 0xae8c}, + {"linux/kvm.h", "KVM_SET_FPU", 0xae8d}, + {"linux/kvm.h", "KVM_GET_LAPIC", 0xae8e}, + {"linux/kvm.h", "KVM_SET_LAPIC", 0xae8f}, + {"linux/kvm.h", "KVM_SET_CPUID2", 0xae90}, + {"linux/kvm.h", "KVM_GET_CPUID2", 0xae91}, + {"linux/kvm.h", "KVM_TPR_ACCESS_REPORTING", 0xae92}, + {"linux/kvm.h", "KVM_SET_VAPIC_ADDR", 0xae93}, + {"linux/kvm.h", "KVM_S390_INTERRUPT", 0xae94}, + {"linux/kvm.h", "KVM_S390_STORE_STATUS", 0xae95}, + {"linux/kvm.h", "KVM_S390_SET_INITIAL_PSW", 0xae96}, + {"linux/kvm.h", "KVM_S390_INITIAL_RESET", 0xae97}, + {"linux/kvm.h", "KVM_GET_MP_STATE", 0xae98}, + {"linux/kvm.h", "KVM_SET_MP_STATE", 0xae99}, + {"linux/kvm.h", "KVM_IA64_VCPU_GET_STACK", 0xae9a}, + {"linux/kvm.h", "KVM_NMI", 0xae9a}, + {"linux/kvm.h", "KVM_IA64_VCPU_SET_STACK", 0xae9b}, + {"linux/kvm.h", "KVM_SET_GUEST_DEBUG", 0xae9b}, + {"linux/kvm.h", "KVM_X86_SETUP_MCE", 0xae9c}, + {"linux/kvm.h", "KVM_X86_GET_MCE_CAP_SUPPORTED", 0xae9d}, + {"linux/kvm.h", "KVM_X86_SET_MCE", 0xae9e}, + {"linux/kvm.h", "KVM_GET_PIT2", 0xae9f}, + {"linux/kvm.h", "KVM_GET_VCPU_EVENTS", 0xae9f}, + {"linux/kvm.h", "KVM_SET_PIT2", 0xaea0}, + {"linux/kvm.h", "KVM_SET_VCPU_EVENTS", 0xaea0}, + {"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/dm-ioctl.h", "DM_TARGET_MSG", 0xfd0e}, + {"linux/dm-ioctl.h", "DM_DEV_SET_GEOMETRY", 0xfd0f},
diff --git a/strace-4.5.20/linux/ioctlent.sh b/strace-4.5.20/linux/ioctlent.sh new file mode 100755 index 0000000..9eca767 --- /dev/null +++ b/strace-4.5.20/linux/ioctlent.sh
@@ -0,0 +1,155 @@ +#! /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$ +# + +# 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 asm-generic/ioctls.h +lookup_ioctls 56 linux/vt.h +lookup_ioctls '7[12]' linux/videotext.h +lookup_ioctls 89 $asm/sockios.h asm-generic/sockios.h linux/sockios.h +lookup_ioctls 8B linux/wireless.h + +if [ -e $dir/Kbuild ]; then + # kernel has exported user space headers, so query only them + files=$( + cd $dir || exit + find . -mindepth 2 -name Kbuild | \ + sed -e 's:^\./::' -e 's:/Kbuild:/*:' | \ + grep -v '^asm-' + echo "$asm/* asm-generic/*" + ) +else + # older kernel so just assume some headers + files="linux/* $asm/* asm-generic/* scsi/* sound/*" +fi + +# Build the list of all ioctls +# Example output: +# { "asm/ioctls.h", "TIOCSWINSZ", 0x5414 }, +# { "asm/mce.h", "MCE_GETCLEAR_FLAGS", _IOC(_IOC_NONE,'M',3,0) }, +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 -n \ + -e "s,$asm/,asm/,g" \ + -e 's/^\(.*\):[[:space:]]*#[[:space:]]*define[[:space:]]*\([A-Z0-9_]*\)[[:space:]]*_S\?I.*(\([^[,]*\)[[:space:]]*,[[:space:]]*\([^,)]*\).*/ { "\1", "\2", _IOC(_IOC_NONE,\3,\4,0) },/p' \ + >> ioctls.h + +# Sort and drop dups? +# sort -u <ioctls.h >ioctls1.h && mv ioctls1.h ioctls.h + + +> ioctldefs.h + +# Collect potential ioctl names. ('bases' is a bad name. Sigh) +# Some use a special base to offset their ioctls on. Extract that as well. +# Some use 2 defines: _IOC(_IOC_NONE,DM_IOCTL,DM_LIST_DEVICES_CMD,....) +bases=$(sed -n \ + -e 's/.*_IOC_NONE.*,[[:space:]]*\([A-Z][A-Z0-9_]\+\)[[:space:]]*,[[:space:]]*\([A-Z][A-Z0-9_]\+\)[[:space:]+,].*/\1\n\2/p' \ + -e 's/.*_IOC_NONE.*,[[:space:]]*\([A-Z][A-Z0-9_]\+\)[[:space:]+,].*/\1/p' \ + ioctls.h | sort -u) + +for base in $bases; do + echo "Looking for $base" + regexp="^[[:space:]]*#[[:space:]]*define[[:space:]]\+$base" + line=$( (cd $dir && grep -h $regexp 2>/dev/null $files) | grep -v '\<_IO') + if [ x"$line" != x ]; then + echo "$base is a #define" # "($line)" + echo "$line" >> ioctldefs.h + fi + + if ! grep "\<$base\>" ioctldefs.h >/dev/null 2>/dev/null; then + # Not all ioctl's are defines ... some (like the DM_* stuff) + # are enums, so we have to extract that crap ourself + ( + cd $dir || exit + # -P: inhibit generation of linemarkers + ${CPP:-cpp} -P $(grep -l $base $files 2>/dev/null) | sed '/^$/d' | \ + awk -v base="$base" '{ + if ($1 == "enum") { + val = 0 + while ($NF != "};") { + if (!getline) + exit + gsub(/,/, "") + if ($0 ~ /=/) + val = $NF + if ($1 == base) { + print "#define " base " (" val ")" + exit + } + val++ + } + } + }' + ) >> ioctldefs.h + if ! grep "\<$base\>" ioctldefs.h >/dev/null 2>/dev/null; then + echo "Can't find the definition for $base" + else + echo "$base is an enum" + fi + fi +done + +# Sort and drop dups? +# sort -u <ioctldefs.h >ioctldefs1.h && mv ioctldefs1.h ioctldefs.h
diff --git a/strace-4.5.20/linux/ioctlsort.c b/strace-4.5.20/linux/ioctlsort.c new file mode 100644 index 0000000..0862b2e --- /dev/null +++ b/strace-4.5.20/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; + +#if defined(POWERPC) || defined(__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-4.5.20/linux/m68k/syscallent.h b/strace-4.5.20/linux/m68k/syscallent.h new file mode 100644 index 0000000..eba2f7f --- /dev/null +++ b/strace-4.5.20/linux/m68k/syscallent.h
@@ -0,0 +1,483 @@ +/* + * 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$ + */ + + { 0, 0, sys_restart_syscall, "restart_syscall" }, /* 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 */ + { 3, TF, sys_chown, "chown" }, /* 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, "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 */ + { 4, 0, sys_cacheflush, "cacheflush" }, /* 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 */ + { 3, 0, sys_init_module, "init_module" }, /* 128 */ + { 2, 0, sys_delete_module, "delete_module" }, /* 129 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 131 */ + { 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 */ + { 5, 0, sys_mremap, "mremap" }, /* 163 */ + { 3, 0, sys_setresuid, "setresuid" }, /* 164 */ + { 3, 0, sys_getresuid, "getresuid" }, /* 165 */ + { 5, 0, printargs, "getpagesize" }, /* 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, sys_prctl, "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 */ + { 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, TD|TN, 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, "chown32" }, /* 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, "lchown32" }, /* 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 */ + { 5, 0, printargs, "SYS_218" }, /* 218 */ + { 5, 0, printargs, "SYS_219" }, /* 219 */ + { 3, TD, sys_getdents64, "getdents64" }, /* 220 */ + { 0, 0, printargs, "gettid" }, /* 221 */ + { 2, TS, sys_kill, "tkill" }, /* 222 */ + { 5, TF, sys_setxattr, "setxattr" }, /* 223 */ + { 5, TF, sys_setxattr, "lsetxattr" }, /* 224 */ + { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 225 */ + { 4, TF, sys_getxattr, "getxattr" }, /* 226 */ + { 4, TF, sys_getxattr, "lgetxattr" }, /* 227 */ + { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 228 */ + { 3, TF, sys_listxattr, "listxattr" }, /* 229 */ + { 3, TF, sys_listxattr, "llistxattr" }, /* 230 */ + { 3, 0, sys_flistxattr, "flistxattr" }, /* 231 */ + { 2, TF, sys_removexattr, "removexattr" }, /* 232 */ + { 2, TF, sys_removexattr, "lremovexattr" }, /* 233 */ + { 2, 0, sys_fremovexattr, "fremovexattr" }, /* 234 */ + { 6, 0, sys_futex, "futex" }, /* 235 */ + { 4, TF, sys_sendfile64, "sendfile64" }, /* 236 */ + { 3, 0, sys_mincore, "mincore" }, /* 237 */ + { 3, 0, sys_madvise, "madvise" }, /* 238 */ + { 3, 0, sys_fcntl, "fcntl64" }, /* 239 */ + { 4, 0, sys_readahead, "readahead" }, /* 240 */ + { 2, 0, sys_io_setup, "io_setup" }, /* 241 */ + { 1, 0, sys_io_destroy, "io_destroy" }, /* 242 */ + { 5, 0, sys_io_getevents, "io_getevents" }, /* 243 */ + { 3, 0, sys_io_submit, "io_submit" }, /* 244 */ + { 3, 0, sys_io_cancel, "io_cancel" }, /* 245 */ + { 5, TF, sys_fadvise64, "fadvise64" }, /* 246 */ + { 1, TP, sys_exit, "exit_group", __NR_exit_group }, /* 247 */ + { 4, 0, printargs, "lookup_dcookie"}, /* 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 */ + { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 252 */ + { 1, 0, printargs, "set_tid_address"}, /* 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 */ + { 3, TF, sys_statfs64, "statfs64" }, /* 263 */ + { 3, TF, sys_fstatfs64, "fstatfs64" }, /* 264 */ + { 3, TS, sys_tgkill, "tgkill" }, /* 265 */ + { 2, TF, sys_utimes, "utimes" }, /* 266 */ + { 6, TF, sys_fadvise64_64, "fadvise64_64" }, /* 267 */ + { 6, 0, sys_mbind, "mbind" }, /* 268 */ + { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 269 */ + { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 270 */ + { 4, 0, sys_mq_open, "mq_open" }, /* 271 */ + { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 272 */ + { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 273 */ + { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 274 */ + { 2, 0, sys_mq_notify, "mq_notify" }, /* 275 */ + { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 276 */ + { 5, TP, sys_waitid, "waitid", SYS_waitid }, /* 277 */ + { 5, 0, printargs, "vserver" }, /* 278 */ + { 5, 0, printargs, "add_key" }, /* 279 */ + { 5, 0, printargs, "request_key" }, /* 280 */ + { 5, 0, printargs, "keyctl" }, /* 281 */ + { 3, 0, printargs, "ioprio_set" }, /* 282 */ + { 2, 0, printargs, "ioprio_get" }, /* 283 */ + { 0, TD, printargs, "inotify_init" }, /* 284 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 285 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 286 */ + { 4, 0, printargs, "migrate_pages" }, /* 287 */ + { 4, TD|TF, sys_openat, "openat" }, /* 288 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 289 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 290 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 291 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 292 */ + { 4, TD|TD, sys_newfstatat, "fstatat64" }, /* 293 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 294 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 295 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 296 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 297 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 298 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 299 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 300 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 301 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 302 */ + { 1, TP, sys_unshare, "unshare" }, /* 303 */ + { 2, 0, printargs, "set_robust_list" }, /* 304 */ + { 3, 0, printargs, "get_robust_list" }, /* 305 */ + { 6, TD, printargs, "splice" }, /* 306 */ + { 4, TD, printargs, "sync_file_range" }, /* 307 */ + { 4, TD, printargs, "tee" }, /* 308 */ + { 4, TD, printargs, "vmsplice" }, /* 309 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 310 */ + { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 311 */ + { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 312 */ + { 5, 0, printargs, "kexec_load" }, /* 313 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 314 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 315 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 316 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 317 */ + { 2, TD, sys_timerfd_create, "timerfd_create"}, /* 318 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 319 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 320 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime"}, /* 321 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime"}, /* 322 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 323 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 324 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 325 */ + { 3, TD, sys_dup3, "dup3" }, /* 326 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 327 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 328 */ + { 5, TD, printargs, "preadv" }, /* 329 */ + { 5, TD, printargs, "pwritev" }, /* 330 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 331 */ + { 5, TD, printargs, "perf_event_open"}, /* 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 */ + { 5, 0, printargs, "SYS_353" }, /* 353 */ + { 5, 0, printargs, "SYS_354" }, /* 354 */ + { 5, 0, printargs, "SYS_355" }, /* 355 */ + { 5, 0, printargs, "SYS_356" }, /* 356 */ + { 5, 0, printargs, "SYS_357" }, /* 357 */ + { 5, 0, printargs, "SYS_358" }, /* 358 */ + { 5, 0, printargs, "SYS_359" }, /* 359 */ + { 5, 0, printargs, "SYS_360" }, /* 360 */ + { 5, 0, printargs, "SYS_361" }, /* 361 */ + { 5, 0, printargs, "SYS_362" }, /* 362 */ + { 5, 0, printargs, "SYS_363" }, /* 363 */ + { 5, 0, printargs, "SYS_364" }, /* 364 */ + { 5, 0, printargs, "SYS_365" }, /* 365 */ + { 5, 0, printargs, "SYS_366" }, /* 366 */ + { 5, 0, printargs, "SYS_367" }, /* 367 */ + { 5, 0, printargs, "SYS_368" }, /* 368 */ + { 5, 0, printargs, "SYS_369" }, /* 369 */ + { 5, 0, printargs, "SYS_370" }, /* 370 */ + { 5, 0, printargs, "SYS_371" }, /* 371 */ + { 5, 0, printargs, "SYS_372" }, /* 372 */ + { 5, 0, printargs, "SYS_373" }, /* 373 */ + { 5, 0, printargs, "SYS_374" }, /* 374 */ + { 5, 0, printargs, "SYS_375" }, /* 375 */ + { 5, 0, printargs, "SYS_376" }, /* 376 */ + { 5, 0, printargs, "SYS_377" }, /* 377 */ + { 5, 0, printargs, "SYS_378" }, /* 378 */ + { 5, 0, printargs, "SYS_379" }, /* 379 */ + { 5, 0, printargs, "SYS_380" }, /* 380 */ + { 5, 0, printargs, "SYS_381" }, /* 381 */ + { 5, 0, printargs, "SYS_382" }, /* 382 */ + { 5, 0, printargs, "SYS_383" }, /* 383 */ + { 5, 0, printargs, "SYS_384" }, /* 384 */ + { 5, 0, printargs, "SYS_385" }, /* 385 */ + { 5, 0, printargs, "SYS_386" }, /* 386 */ + { 5, 0, printargs, "SYS_387" }, /* 387 */ + { 5, 0, printargs, "SYS_388" }, /* 388 */ + { 5, 0, printargs, "SYS_389" }, /* 389 */ + { 5, 0, printargs, "SYS_390" }, /* 390 */ + { 5, 0, printargs, "SYS_391" }, /* 391 */ + { 5, 0, printargs, "SYS_392" }, /* 392 */ + { 5, 0, printargs, "SYS_393" }, /* 393 */ + { 5, 0, printargs, "SYS_394" }, /* 394 */ + { 5, 0, printargs, "SYS_395" }, /* 395 */ + { 5, 0, printargs, "SYS_396" }, /* 396 */ + { 5, 0, printargs, "SYS_397" }, /* 397 */ + { 5, 0, printargs, "SYS_398" }, /* 398 */ + { 5, 0, printargs, "SYS_399" }, /* 399 */ + +#if SYS_socket_subcall != 400 + #error fix me +#endif + { 8, 0, printargs, "socket_subcall"}, /* 400 */ + { 3, TN, sys_socket, "socket" }, /* 401 */ + { 3, TN, sys_bind, "bind" }, /* 402 */ + { 3, TN, sys_connect, "connect" }, /* 403 */ + { 2, TN, sys_listen, "listen" }, /* 404 */ + { 3, TN, sys_accept, "accept" }, /* 405 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 406 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 407 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 408 */ + { 4, TN, sys_send, "send", SYS_sub_send }, /* 409 */ + { 4, TN, sys_recv, "recv", SYS_sub_recv }, /* 410 */ + { 6, TN, sys_sendto, "sendto", SYS_sub_sendto }, /* 411 */ + { 6, TN, sys_recvfrom, "recvfrom", SYS_sub_recvfrom }, /* 412 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 413 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 414 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 415 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 416 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 417 */ + { 4, TN, sys_accept4, "accept4" }, /* 418 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 419 */ + +#if SYS_ipc_subcall != 420 + #error fix me +#endif + { 4, 0, printargs, "ipc_subcall" }, /* 420 */ + { 4, TI, sys_semop, "semop" }, /* 421 */ + { 4, TI, sys_semget, "semget" }, /* 422 */ + { 4, TI, sys_semctl, "semctl" }, /* 423 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 424 */ + { 4, 0, printargs, "ipc_subcall" }, /* 425 */ + { 4, 0, printargs, "ipc_subcall" }, /* 426 */ + { 4, 0, printargs, "ipc_subcall" }, /* 427 */ + { 4, 0, printargs, "ipc_subcall" }, /* 428 */ + { 4, 0, printargs, "ipc_subcall" }, /* 429 */ + { 4, 0, printargs, "ipc_subcall" }, /* 430 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 431 */ + { 4, TI, sys_msgrcv, "msgrcv" }, /* 432 */ + { 4, TI, sys_msgget, "msgget" }, /* 433 */ + { 4, TI, sys_msgctl, "msgctl" }, /* 434 */ + { 4, 0, printargs, "ipc_subcall" }, /* 435 */ + { 4, 0, printargs, "ipc_subcall" }, /* 436 */ + { 4, 0, printargs, "ipc_subcall" }, /* 437 */ + { 4, 0, printargs, "ipc_subcall" }, /* 438 */ + { 4, 0, printargs, "ipc_subcall" }, /* 439 */ + { 4, 0, printargs, "ipc_subcall" }, /* 440 */ + { 4, TI, sys_shmat, "shmat" }, /* 441 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 442 */ + { 4, TI, sys_shmget, "shmget" }, /* 443 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 444 */
diff --git a/strace-4.5.20/linux/mips/errnoent.h b/strace-4.5.20/linux/mips/errnoent.h new file mode 100644 index 0000000..b22ee87 --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/mips/ioctlent.h b/strace-4.5.20/linux/mips/ioctlent.h new file mode 100644 index 0000000..c1d6b8a --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/mips/ioctlent.sh b/strace-4.5.20/linux/mips/ioctlent.sh new file mode 100755 index 0000000..dd5fd9d --- /dev/null +++ b/strace-4.5.20/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$ + +# 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-4.5.20/linux/mips/signalent.h b/strace-4.5.20/linux/mips/signalent.h new file mode 100644 index 0000000..2cf746a --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/mips/syscallent.h b/strace-4.5.20/linux/mips/syscallent.h new file mode 100644 index 0000000..e2fe509 --- /dev/null +++ b/strace-4.5.20/linux/mips/syscallent.h
@@ -0,0 +1,7787 @@ +#include "dummy.h" + + { 0, 0, printargs, "svr4_syscall" }, /* 000 */ + { 0, 0, printargs, "svr4_exit" }, /* 001 */ + { 0, 0, printargs, "svr4_fork" }, /* 002 */ + { 0, 0, printargs, "svr4_read" }, /* 003 */ + { 0, 0, printargs, "svr4_write" }, /* 004 */ + { 0, 0, printargs, "svr4_open" }, /* 005 */ + { 0, 0, printargs, "svr4_close" }, /* 006 */ + { 0, 0, printargs, "svr4_wait" }, /* 007 */ + { 0, 0, printargs, "svr4_creat" }, /* 008 */ + { 0, 0, printargs, "svr4_link" }, /* 009 */ + { 0, 0, printargs, "svr4_unlink" }, /* 010 */ + { 0, 0, printargs, "svr4_exec" }, /* 011 */ + { 0, 0, printargs, "svr4_chdir" }, /* 012 */ + { 0, 0, printargs, "svr4_gtime" }, /* 013 */ + { 0, 0, printargs, "svr4_mknod" }, /* 014 */ + { 0, 0, printargs, "svr4_chmod" }, /* 015 */ + { 0, 0, printargs, "svr4_chown" }, /* 016 */ + { 0, 0, printargs, "svr4_sbreak" }, /* 017 */ + { 0, 0, printargs, "svr4_stat" }, /* 018 */ + { 0, 0, printargs, "svr4_lseek" }, /* 019 */ + { 0, 0, printargs, "svr4_getpid" }, /* 020 */ + { 0, 0, printargs, "svr4_mount" }, /* 021 */ + { 0, 0, printargs, "svr4_umount" }, /* 022 */ + { 0, 0, printargs, "svr4_setuid" }, /* 023 */ + { 0, 0, printargs, "svr4_getuid" }, /* 024 */ + { 0, 0, printargs, "svr4_stime" }, /* 025 */ + { 0, 0, printargs, "svr4_ptrace" }, /* 026 */ + { 0, 0, printargs, "svr4_alarm" }, /* 027 */ + { 0, 0, printargs, "svr4_fstat" }, /* 028 */ + { 0, 0, printargs, "svr4_pause" }, /* 029 */ + { 0, 0, printargs, "svr4_utime" }, /* 030 */ + { 0, 0, printargs, "svr4_stty" }, /* 031 */ + { 0, 0, printargs, "svr4_gtty" }, /* 032 */ + { 0, 0, printargs, "svr4_access" }, /* 033 */ + { 0, 0, printargs, "svr4_nice" }, /* 034 */ + { 0, 0, printargs, "svr4_statfs" }, /* 035 */ + { 0, 0, printargs, "svr4_sync" }, /* 036 */ + { 0, 0, printargs, "svr4_kill" }, /* 037 */ + { 0, 0, printargs, "svr4_fstatfs" }, /* 038 */ + { 0, 0, printargs, "svr4_setpgrp" }, /* 039 */ + { 0, 0, printargs, "svr4_cxenix" }, /* 040 */ + { 0, 0, printargs, "svr4_dup" }, /* 041 */ + { 0, 0, printargs, "svr4_pipe" }, /* 042 */ + { 0, 0, printargs, "svr4_times" }, /* 043 */ + { 0, 0, printargs, "svr4_profil" }, /* 044 */ + { 0, 0, printargs, "svr4_plock" }, /* 045 */ + { 0, 0, printargs, "svr4_setgid" }, /* 046 */ + { 0, 0, printargs, "svr4_getgid" }, /* 047 */ + { 0, 0, printargs, "svr4_sig" }, /* 048 */ + { 0, 0, printargs, "svr4_msgsys" }, /* 049 */ + { 0, 0, printargs, "svr4_sysmips" }, /* 050 */ + { 0, 0, printargs, "svr4_sysacct" }, /* 051 */ + { 0, 0, printargs, "svr4_shmsys" }, /* 052 */ + { 0, 0, printargs, "svr4_semsys" }, /* 053 */ + { 0, 0, printargs, "svr4_ioctl" }, /* 054 */ + { 0, 0, printargs, "svr4_uadmin" }, /* 055 */ + { 0, 0, printargs, "svr4_exch" }, /* 056 */ + { 0, 0, printargs, "svr4_utssys" }, /* 057 */ + { 0, 0, printargs, "svr4_fsync" }, /* 058 */ + { 0, 0, printargs, "svr4_exece" }, /* 059 */ + { 0, 0, printargs, "svr4_umask" }, /* 060 */ + { 0, 0, printargs, "svr4_chroot" }, /* 061 */ + { 0, 0, printargs, "svr4_fcntl" }, /* 062 */ + { 0, 0, printargs, "svr4_ulimit" }, /* 063 */ + { 0, 0, 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 */ +#if !defined (LINUX_MIPSN32) && !defined (LINUX_MIPSN64) + /* For an O32 strace, decode the o32 syscalls. */ + { 8, 0, printargs, "syscall" }, /* 4000 */ /* start of Linux o32 */ + { 1, TP, sys_exit, "exit" }, /* 4001 */ + { 0, TP, sys_fork, "fork" }, /* 4002 */ + { 3, TD, sys_read, "read" }, /* 4003 */ + { 3, TD, sys_write, "write" }, /* 4004 */ + { 3, TD|TF, sys_open, "open" }, /* 4005 */ + { 1, TD, sys_close, "close" }, /* 4006 */ + { 3, TP, sys_waitpid, "waitpid" }, /* 4007 */ + { 2, TD|TF, sys_creat, "creat" }, /* 4008 */ + { 2, TF, sys_link, "link" }, /* 4009 */ + { 1, TF, sys_unlink, "unlink" }, /* 4010 */ + { 3, TF|TP, sys_execve, "execve" }, /* 4011 */ + { 1, TF, sys_chdir, "chdir" }, /* 4012 */ + { 1, 0, sys_time, "time" }, /* 4013 */ + { 3, TF, sys_mknod, "mknod" }, /* 4014 */ + { 2, TF, sys_chmod, "chmod" }, /* 4015 */ + { 3, TF, sys_chown, "lchown" }, /* 4016 */ + { 0, 0, sys_break, "break" }, /* 4017 */ + { 2, TF, sys_oldstat, "oldstat" }, /* 4018 */ + { 3, TD, sys_lseek, "lseek" }, /* 4019 */ + { 0, 0, sys_getpid, "getpid" }, /* 4020 */ + { 5, TF, sys_mount, "mount" }, /* 4021 */ + { 1, TF, sys_umount, "oldumount" }, /* 4022 */ + { 1, 0, sys_setuid, "setuid" }, /* 4023 */ + { 0, 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, TD, sys_dup, "dup" }, /* 4041 */ + { 1, TD, sys_pipe, "pipe" }, /* 4042 */ + { 1, 0, sys_times, "times" }, /* 4043 */ + { 0, 0, sys_prof, "prof" }, /* 4044 */ + { 1, 0, sys_brk, "brk" }, /* 4045 */ + { 1, 0, sys_setgid, "setgid" }, /* 4046 */ + { 0, 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, TD, sys_ioctl, "ioctl" }, /* 4054 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 4055 */ + { 0, 0, sys_mpx, "mpx" }, /* 4056 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 4057 */ + { 0, 0, sys_ulimit, "ulimit" }, /* 4058 */ + { 1, 0, sys_oldolduname, "oldolduname" }, /* 4059 */ + { 1, 0, sys_umask, "umask" }, /* 4060 */ + { 1, TF, sys_chroot, "chroot" }, /* 4061 */ + { 2, 0, sys_ustat, "ustat" }, /* 4062 */ + { 2, TD, sys_dup2, "dup2" }, /* 4063 */ + { 0, 0, sys_getppid, "getppid" }, /* 4064 */ + { 0, 0, sys_getpgrp, "getpgrp" }, /* 4065 */ + { 0, 0, sys_setsid, "setsid" }, /* 4066 */ + { 3, TS, sys_sigaction, "sigaction" }, /* 4067 */ + { 0, TS, sys_siggetmask, "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, TD, sys_readdir, "readdir" }, /* 4089 */ + { 6, 0, sys_mmap, "old_mmap" }, /* 4090 */ + { 2, 0, sys_munmap, "munmap" }, /* 4091 */ + { 2, TF, sys_truncate, "truncate" }, /* 4092 */ + { 2, TD, sys_ftruncate, "ftruncate" }, /* 4093 */ + { 2, TD, sys_fchmod, "fchmod" }, /* 4094 */ + { 3, TD, sys_fchown, "fchown" }, /* 4095 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 4096 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 4097 */ + { 0, 0, sys_profil, "profil" }, /* 4098 */ + { 3, TF, sys_statfs, "statfs" }, /* 4099 */ + { 3, TD, sys_fstatfs, "fstatfs" }, /* 4100 */ + { 0, 0, sys_ioperm, "ioperm" }, /* 4101 */ + { 2, TD, sys_socketcall, "socketcall" }, /* 4102 */ + { 3, 0, sys_syslog, "syslog" }, /* 4103 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 4104 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 4105 */ + { 2, TF, sys_stat, "stat" }, /* 4106 */ + { 2, TF, sys_lstat, "lstat" }, /* 4107 */ + { 2, TD, sys_fstat, "fstat" }, /* 4108 */ + { 1, 0, sys_olduname, "olduname" }, /* 4109 */ + { 0, 0, sys_iopl, "iopl" }, /* 4110 */ + { 0, 0, sys_vhangup, "vhangup" }, /* 4111 */ + { 0, 0, sys_idle, "idle" }, /* 4112 */ + { 5, 0, sys_vm86old, "vm86" }, /* 4113 */ + { 4, TP, sys_wait4, "wait4" }, /* 4114 */ + { 1, 0, sys_swapoff, "swapoff" }, /* 4115 */ + { 1, 0, sys_sysinfo, "sysinfo" }, /* 4116 */ + { 6, 0, sys_ipc, "ipc" }, /* 4117 */ + { 1, TD, 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 */ + { 2, 0, sys_delete_module, "delete_module" }, /* 4129 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 4130 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 4131 */ + { 1, 0, sys_getpgid, "getpgid" }, /* 4132 */ + { 1, TF, sys_fchdir, "fchdir" }, /* 4133 */ + { 2, 0, sys_bdflush, "bdflush" }, /* 4134 */ + { 3, 0, sys_sysfs, "sysfs" }, /* 4135 */ + { 1, 0, sys_personality, "personality" }, /* 4136 */ + { 0, 0, sys_afs_syscall, "afs_syscall" }, /* 4137 */ + { 1, 0, sys_setfsuid, "setfsuid" }, /* 4138 */ + { 1, 0, sys_setfsgid, "setfsgid" }, /* 4139 */ + { 5, TF, sys_llseek, "_llseek" }, /* 4140 */ + { 3, TD, sys_getdents, "getdents" }, /* 4141 */ + { 5, TD, sys_select, "_newselect" }, /* 4142 */ + { 2, TD, sys_flock, "flock" }, /* 4143 */ + { 3, 0, sys_msync, "msync" }, /* 4144 */ + { 3, TD, sys_readv, "readv" }, /* 4145 */ + { 3, TD, sys_writev, "writev" }, /* 4146 */ + { 3, 0, printargs, "cacheflush" }, /* 4147 */ + { 3, 0, printargs, "cachectl" }, /* 4148 */ + { 4, 0, sys_sysmips, "sysmips" }, /* 4149 */ + { 0, 0, sys_setup, "setup" }, /* 4150 */ + { 1, 0, sys_getsid, "getsid" }, /* 4151 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 4152 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 4153 */ + { 2, 0, sys_mlock, "mlock" }, /* 4154 */ + { 2, 0, sys_munlock, "munlock" }, /* 4155 */ + { 1, 0, sys_mlockall, "mlockall" }, /* 4156 */ + { 0, 0, sys_munlockall, "munlockall" }, /* 4157 */ + { 2, 0, sys_sched_setparam, "sched_setparam"}, /* 4158 */ + { 2, 0, sys_sched_getparam, "sched_getparam"}, /* 4159 */ + { 3, 0, sys_sched_setscheduler, "sched_setscheduler"}, /* 4160 */ + { 1, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 4161 */ + { 0, 0, sys_sched_yield, "sched_yield" }, /* 4162 */ + { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 4163 */ + { 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 4164 */ + { 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 4165 */ + { 2, 0, sys_nanosleep, "nanosleep" }, /* 4166 */ + { 5, 0, sys_mremap, "mremap" }, /* 4167 */ + { 3, TN, sys_accept, "accept" }, /* 4168 */ + { 3, TN, sys_bind, "bind" }, /* 4169 */ + { 3, TN, sys_connect, "connect" }, /* 4170 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 4171 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 4172 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 4173 */ + { 2, TN, sys_listen, "listen" }, /* 4174 */ + { 4, TN, sys_recv, "recv" }, /* 4175 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 4176 */ + { 3, TN, sys_recvmsg, "recvmsg" }, /* 4177 */ + { 4, TN, sys_send, "send" }, /* 4178 */ + { 3, TN, sys_sendmsg, "sendmsg" }, /* 4179 */ + { 6, TN, sys_sendto, "sendto" }, /* 4180 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 4181 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 4182 */ + { 3, TN, sys_socket, "socket" }, /* 4183 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 4184 */ + { 3, 0, sys_setresuid, "setresuid" }, /* 4185 */ + { 3, 0, sys_getresuid, "getresuid" }, /* 4186 */ + { 5, 0, sys_query_module, "query_module" }, /* 4187 */ + { 3, TD, sys_poll, "poll" }, /* 4188 */ + { 3, 0, 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, TD, sys_pread, "pread" }, /* 4200 */ + { 6, TD, sys_pwrite, "pwrite" }, /* 4201 */ + { 3, TF, sys_chown, "chown" }, /* 4202 */ + { 2, TF, sys_getcwd, "getcwd" }, /* 4203 */ + { 2, 0, sys_capget, "capget" }, /* 4204 */ + { 2, 0, sys_capset, "capset" }, /* 4205 */ + { 2, TS, sys_sigaltstack, "sigaltstatck" }, /* 4206 */ + { 4, TD|TN, sys_sendfile, "sendfile" }, /* 4207 */ + { 0, 0, printargs, "SYS_4208" }, /* 4208 */ + { 0, 0, printargs, "SYS_4209" }, /* 4209 */ + { 6, 0, sys_mmap, "mmap" }, /* 4210 */ + { 4, TF, sys_truncate64, "truncate64" }, /* 4211 */ + { 4, TD, sys_ftruncate64, "ftruncate64" }, /* 4212 */ + { 2, TF, printargs, "stat64" }, /* 4213 */ + { 2, TF, sys_lstat64, "lstat64" }, /* 4214 */ + { 2, TD, 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, TD, sys_fcntl, "fcntl64" }, /* 4220 */ + { 0, 0, printargs, "SYS_4221" }, /* 4221 */ + { 0, 0, printargs, "gettid" }, /* 4222 */ + { 5, TD, sys_readahead, "readahead" }, /* 4223 */ + { 5, TF, sys_setxattr, "setxattr" }, /* 4224 */ + { 5, TF, sys_setxattr, "lsetxattr" }, /* 4225 */ + { 5, TD, sys_fsetxattr, "fsetxattr" }, /* 4226 */ + { 4, TF, sys_getxattr, "getxattr" }, /* 4227 */ + { 4, TF, sys_getxattr, "lgetxattr" }, /* 4228 */ + { 4, 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, TD, sys_fremovexattr, "fremovexattr" }, /* 4235 */ + { 2, TS, sys_kill, "tkill" }, /* 4236 */ + { 5, TD|TN, sys_sendfile64, "sendfile64" }, /* 4237 */ + { 6, 0, sys_futex, "futex" }, /* 4238 */ + { 3, 0, sys_sched_setaffinity, "sched_setaffinity"}, /* 4239 */ + { 3, 0, sys_sched_getaffinity, "sched_getaffinity"}, /* 4240 */ + { 2, 0, sys_io_setup, "io_setup" }, /* 4241 */ + { 1, 0, sys_io_destroy, "io_destroy" }, /* 4242 */ + { 5, 0, sys_io_getevents, "io_getevents" }, /* 4243 */ + { 3, 0, sys_io_submit, "io_submit" }, /* 4244 */ + { 3, 0, sys_io_cancel, "io_cancel" }, /* 4245 */ + { 1, TP, sys_exit, "exit_group" }, /* 4246 */ + { 4, 0, printargs, "lookup_dcookie"}, /* 4247 */ + { 1, 0, sys_epoll_create, "epoll_create" }, /* 4248 */ + { 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 4249 */ + { 3, TD, 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, sys_restart_syscall, "restart_syscall"}, /* 4253 */ + { 6, 0, sys_fadvise64_64, "fadvise64_64" }, /* 4254 */ + { 3, TF, sys_statfs64, "statfs64" }, /* 4255 */ + { 2, TD, sys_fstatfs64, "fstatfs64" }, /* 4256 */ + { 3, 0, sys_timer_create, "timer_create" }, /* 4257 */ + { 4, 0, sys_timer_settime, "timer_settime" }, /* 4258 */ + { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 4259 */ + { 1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 4260 */ + { 1, 0, sys_timer_delete, "timer_delete" }, /* 4261 */ + { 2, 0, sys_clock_settime, "clock_settime" }, /* 4262 */ + { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 4263 */ + { 2, 0, sys_clock_getres, "clock_getres" }, /* 4264 */ + { 4, 0, sys_clock_nanosleep, "clock_nanosleep"}, /* 4265 */ + { 3, TS, sys_tgkill, "tgkill" }, /* 4266 */ + { 2, TF, sys_utimes, "utimes" }, /* 4267 */ + { 4, 0, sys_mbind, "mbind" }, /* 4268 */ + { 0, 0, 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 */ + { 1, 0, sys_set_thread_area, "set_thread_area" }, /* 4283 */ + { 0, TD, printargs, "inotify_init" }, /* 4284 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 4285 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 4286 */ + { 4, 0, printargs, "migrate_pages" }, /* 4287 */ + { 4, TD|TF, sys_openat, "openat" }, /* 4288 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 4289 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 4290 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 4291 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 4292 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 4293 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 4294 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 4295 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 4296 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 4297 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 4298 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 4299 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 4300 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 4301 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 4302 */ + { 1, TP, sys_unshare, "unshare" }, /* 4303 */ + { 6, TD, printargs, "splice" }, /* 4304 */ + { 4, TD, printargs, "sync_file_range" }, /* 4305 */ + { 0, 0, printargs, "SYS_4306" }, /* 4306 */ + { 0, 0, printargs, "SYS_4307" }, /* 4307 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 4308 */ + { 0, 0, printargs, "SYS_4309" }, /* 4309 */ + { 0, 0, printargs, "SYS_4310" }, /* 4310 */ + { 0, 0, printargs, "SYS_4311" }, /* 4311 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 4312 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 4313 */ + { 0, 0, printargs, "SYS_4314" }, /* 4314 */ + { 0, 0, printargs, "SYS_4315" }, /* 4315 */ + { 0, 0, printargs, "SYS_4316" }, /* 4316 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 4317 */ + { 4, TD, sys_timerfd, "timerfd" }, /* 4318 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 4319 */ +#else + { 0, 0, printargs, "o32_syscall" }, /* 4000 */ + { 0, 0, printargs, "o32_exit" }, /* 4001 */ + { 0, 0, printargs, "o32_fork" }, /* 4002 */ + { 0, 0, printargs, "o32_read" }, /* 4003 */ + { 0, 0, printargs, "o32_write" }, /* 4004 */ + { 0, 0, printargs, "o32_open" }, /* 4005 */ + { 0, 0, printargs, "o32_close" }, /* 4006 */ + { 0, 0, printargs, "o32_waitpid" }, /* 4007 */ + { 0, 0, printargs, "o32_creat" }, /* 4008 */ + { 0, 0, printargs, "o32_link" }, /* 4009 */ + { 0, 0, printargs, "o32_unlink" }, /* 4010 */ + { 0, 0, printargs, "o32_execve" }, /* 4011 */ + { 0, 0, printargs, "o32_chdir" }, /* 4012 */ + { 0, 0, printargs, "o32_time" }, /* 4013 */ + { 0, 0, printargs, "o32_mknod" }, /* 4014 */ + { 0, 0, printargs, "o32_chmod" }, /* 4015 */ + { 0, 0, printargs, "o32_lchown" }, /* 4016 */ + { 0, 0, printargs, "o32_break" }, /* 4017 */ + { 0, 0, printargs, "o32_oldstat" }, /* 4018 */ + { 0, 0, printargs, "o32_lseek" }, /* 4019 */ + { 0, 0, printargs, "o32_getpid" }, /* 4020 */ + { 0, 0, printargs, "o32_mount" }, /* 4021 */ + { 0, 0, printargs, "o32_oldumount" }, /* 4022 */ + { 0, 0, printargs, "o32_setuid" }, /* 4023 */ + { 0, 0, printargs, "o32_getuid" }, /* 4024 */ + { 0, 0, printargs, "o32_stime" }, /* 4025 */ + { 0, 0, printargs, "o32_ptrace" }, /* 4026 */ + { 0, 0, printargs, "o32_alarm" }, /* 4027 */ + { 0, 0, printargs, "o32_oldfstat" }, /* 4028 */ + { 0, 0, printargs, "o32_pause" }, /* 4029 */ + { 0, 0, printargs, "o32_utime" }, /* 4030 */ + { 0, 0, printargs, "o32_stty" }, /* 4031 */ + { 0, 0, printargs, "o32_gtty" }, /* 4032 */ + { 0, 0, printargs, "o32_access" }, /* 4033 */ + { 0, 0, printargs, "o32_nice" }, /* 4034 */ + { 0, 0, printargs, "o32_ftime" }, /* 4035 */ + { 0, 0, printargs, "o32_sync" }, /* 4036 */ + { 0, 0, printargs, "o32_kill" }, /* 4037 */ + { 0, 0, printargs, "o32_rename" }, /* 4038 */ + { 0, 0, printargs, "o32_mkdir" }, /* 4039 */ + { 0, 0, printargs, "o32_rmdir" }, /* 4040 */ + { 0, 0, printargs, "o32_dup" }, /* 4041 */ + { 0, 0, printargs, "o32_pipe" }, /* 4042 */ + { 0, 0, printargs, "o32_times" }, /* 4043 */ + { 0, 0, printargs, "o32_prof" }, /* 4044 */ + { 0, 0, printargs, "o32_brk" }, /* 4045 */ + { 0, 0, printargs, "o32_setgid" }, /* 4046 */ + { 0, 0, printargs, "o32_getgid" }, /* 4047 */ + { 0, 0, printargs, "o32_signal" }, /* 4048 */ + { 0, 0, printargs, "o32_geteuid" }, /* 4049 */ + { 0, 0, printargs, "o32_getegid" }, /* 4050 */ + { 0, 0, printargs, "o32_acct" }, /* 4051 */ + { 0, 0, printargs, "o32_umount" }, /* 4052 */ + { 0, 0, printargs, "o32_lock" }, /* 4053 */ + { 0, 0, printargs, "o32_ioctl" }, /* 4054 */ + { 0, 0, printargs, "o32_fcntl" }, /* 4055 */ + { 0, 0, printargs, "o32_mpx" }, /* 4056 */ + { 0, 0, printargs, "o32_setpgid" }, /* 4057 */ + { 0, 0, printargs, "o32_ulimit" }, /* 4058 */ + { 0, 0, printargs, "o32_oldolduname" }, /* 4059 */ + { 0, 0, printargs, "o32_umask" }, /* 4060 */ + { 0, 0, printargs, "o32_chroot" }, /* 4061 */ + { 0, 0, printargs, "o32_ustat" }, /* 4062 */ + { 0, 0, printargs, "o32_dup2" }, /* 4063 */ + { 0, 0, printargs, "o32_getppid" }, /* 4064 */ + { 0, 0, printargs, "o32_getpgrp" }, /* 4065 */ + { 0, 0, printargs, "o32_setsid" }, /* 4066 */ + { 0, 0, printargs, "o32_sigaction" }, /* 4067 */ + { 0, 0, printargs, "o32_siggetmask" }, /* 4068 */ + { 0, 0, printargs, "o32_sigsetmask" }, /* 4069 */ + { 0, 0, printargs, "o32_setreuid" }, /* 4070 */ + { 0, 0, printargs, "o32_setregid" }, /* 4071 */ + { 0, 0, printargs, "o32_sigsuspend" }, /* 4072 */ + { 0, 0, printargs, "o32_sigpending" }, /* 4073 */ + { 0, 0, printargs, "o32_sethostname" }, /* 4074 */ + { 0, 0, printargs, "o32_setrlimit" }, /* 4075 */ + { 0, 0, printargs, "o32_getrlimit" }, /* 4076 */ + { 0, 0, printargs, "o32_getrusage" }, /* 4077 */ + { 0, 0, printargs, "o32_gettimeofday" }, /* 4078 */ + { 0, 0, printargs, "o32_settimeofday" }, /* 4079 */ + { 0, 0, printargs, "o32_getgroups" }, /* 4080 */ + { 0, 0, printargs, "o32_setgroups" }, /* 4081 */ + { 0, 0, printargs, "o32_reserved82" }, /* 4082 */ + { 0, 0, printargs, "o32_symlink" }, /* 4083 */ + { 0, 0, printargs, "o32_oldlstat" }, /* 4084 */ + { 0, 0, printargs, "o32_readlink" }, /* 4085 */ + { 0, 0, printargs, "o32_uselib" }, /* 4086 */ + { 0, 0, printargs, "o32_swapon" }, /* 4087 */ + { 0, 0, printargs, "o32_reboot" }, /* 4088 */ + { 0, 0, printargs, "o32_readdir" }, /* 4089 */ + { 0, 0, printargs, "o32_old_mmap" }, /* 4090 */ + { 0, 0, printargs, "o32_munmap" }, /* 4091 */ + { 0, 0, printargs, "o32_truncate" }, /* 4092 */ + { 0, 0, printargs, "o32_ftruncate" }, /* 4093 */ + { 0, 0, printargs, "o32_fchmod" }, /* 4094 */ + { 0, 0, printargs, "o32_fchown" }, /* 4095 */ + { 0, 0, printargs, "o32_getpriority" }, /* 4096 */ + { 0, 0, printargs, "o32_setpriority" }, /* 4097 */ + { 0, 0, printargs, "o32_profil" }, /* 4098 */ + { 0, 0, printargs, "o32_statfs" }, /* 4099 */ + { 0, 0, printargs, "o32_fstatfs" }, /* 4100 */ + { 0, 0, printargs, "o32_ioperm" }, /* 4101 */ + { 0, 0, printargs, "o32_socketcall" }, /* 4102 */ + { 0, 0, printargs, "o32_syslog" }, /* 4103 */ + { 0, 0, printargs, "o32_setitimer" }, /* 4104 */ + { 0, 0, printargs, "o32_getitimer" }, /* 4105 */ + { 0, 0, printargs, "o32_stat" }, /* 4106 */ + { 0, 0, printargs, "o32_lstat" }, /* 4107 */ + { 0, 0, printargs, "o32_fstat" }, /* 4108 */ + { 0, 0, printargs, "o32_olduname" }, /* 4109 */ + { 0, 0, printargs, "o32_iopl" }, /* 4110 */ + { 0, 0, printargs, "o32_vhangup" }, /* 4111 */ + { 0, 0, printargs, "o32_idle" }, /* 4112 */ + { 0, 0, printargs, "o32_vm86" }, /* 4113 */ + { 0, 0, printargs, "o32_wait4" }, /* 4114 */ + { 0, 0, printargs, "o32_swapoff" }, /* 4115 */ + { 0, 0, printargs, "o32_sysinfo" }, /* 4116 */ + { 0, 0, printargs, "o32_ipc" }, /* 4117 */ + { 0, 0, printargs, "o32_fsync" }, /* 4118 */ + { 0, 0, printargs, "o32_sigreturn" }, /* 4119 */ + { 0, 0, printargs, "o32_clone" }, /* 4120 */ + { 0, 0, printargs, "o32_setdomainname" }, /* 4121 */ + { 0, 0, printargs, "o32_uname" }, /* 4122 */ + { 0, 0, printargs, "o32_modify_ldt" }, /* 4123 */ + { 0, 0, printargs, "o32_adjtimex" }, /* 4124 */ + { 0, 0, printargs, "o32_mprotect" }, /* 4125 */ + { 0, 0, printargs, "o32_sigprocmask" }, /* 4126 */ + { 0, 0, printargs, "o32_create_module" }, /* 4127 */ + { 0, 0, printargs, "o32_init_module" }, /* 4128 */ + { 0, 0, printargs, "o32_delete_module" }, /* 4129 */ + { 0, 0, printargs, "o32_get_kernel_syms"}, /* 4130 */ + { 0, 0, printargs, "o32_quotactl" }, /* 4131 */ + { 0, 0, printargs, "o32_getpgid" }, /* 4132 */ + { 0, 0, printargs, "o32_fchdir" }, /* 4133 */ + { 0, 0, printargs, "o32_bdflush" }, /* 4134 */ + { 0, 0, printargs, "o32_sysfs" }, /* 4135 */ + { 0, 0, printargs, "o32_personality" }, /* 4136 */ + { 0, 0, printargs, "o32_afs_syscall" }, /* 4137 */ + { 0, 0, printargs, "o32_setfsuid" }, /* 4138 */ + { 0, 0, printargs, "o32_setfsgid" }, /* 4139 */ + { 0, 0, printargs, "o32__llseek" }, /* 4140 */ + { 0, 0, printargs, "o32_getdents" }, /* 4141 */ + { 0, 0, printargs, "o32__newselect" }, /* 4142 */ + { 0, 0, printargs, "o32_flock" }, /* 4143 */ + { 0, 0, printargs, "o32_msync" }, /* 4144 */ + { 0, 0, printargs, "o32_readv" }, /* 4145 */ + { 0, 0, printargs, "o32_writev" }, /* 4146 */ + { 0, 0, printargs, "o32_cacheflush" }, /* 4147 */ + { 0, 0, printargs, "o32_cachectl" }, /* 4148 */ + { 0, 0, printargs, "o32_sysmips" }, /* 4149 */ + { 0, 0, printargs, "o32_setup" }, /* 4150 */ + { 0, 0, printargs, "o32_getsid" }, /* 4151 */ + { 0, 0, printargs, "o32_fdatasync" }, /* 4152 */ + { 0, 0, printargs, "o32__sysctl" }, /* 4153 */ + { 0, 0, printargs, "o32_mlock" }, /* 4154 */ + { 0, 0, printargs, "o32_munlock" }, /* 4155 */ + { 0, 0, printargs, "o32_mlockall" }, /* 4156 */ + { 0, 0, printargs, "o32_munlockall" }, /* 4157 */ + { 0, 0, printargs, "o32_sched_setparam"}, /* 4158 */ + { 0, 0, printargs, "o32_sched_getparam"}, /* 4159 */ + { 0, 0, printargs, "o32_sched_setscheduler"}, /* 4160 */ + { 0, 0, printargs, "o32_sched_getscheduler"}, /* 4161 */ + { 0, 0, printargs, "o32_sched_yield" }, /* 4162 */ + { 0, 0, printargs, "o32_sched_get_priority_max"}, /* 4163 */ + { 0, 0, printargs, "o32_sched_get_priority_min"},/* 4164 */ + { 0, 0, printargs, "o32_sched_rr_get_interval"}, /* 4165 */ + { 0, 0, printargs, "o32_nanosleep" }, /* 4166 */ + { 0, 0, printargs, "o32_mremap" }, /* 4167 */ + { 0, 0, printargs, "o32_accept" }, /* 4168 */ + { 0, 0, printargs, "o32_bind" }, /* 4169 */ + { 0, 0, printargs, "o32_connect" }, /* 4170 */ + { 0, 0, printargs, "o32_getpeername" }, /* 4171 */ + { 0, 0, printargs, "o32_getsockname" }, /* 4172 */ + { 0, 0, printargs, "o32_getsockopt" }, /* 4173 */ + { 0, 0, printargs, "o32_listen" }, /* 4174 */ + { 0, 0, printargs, "o32_recv" }, /* 4175 */ + { 0, 0, printargs, "o32_recvfrom" }, /* 4176 */ + { 0, 0, printargs, "o32_recvmsg" }, /* 4177 */ + { 0, 0, printargs, "o32_send" }, /* 4178 */ + { 0, 0, printargs, "o32_sendmsg" }, /* 4179 */ + { 0, 0, printargs, "o32_sendto" }, /* 4180 */ + { 0, 0, printargs, "o32_setsockopt" }, /* 4181 */ + { 0, 0, printargs, "o32_shutdown" }, /* 4182 */ + { 0, 0, printargs, "o32_socket" }, /* 4183 */ + { 0, 0, printargs, "o32_socketpair" }, /* 4184 */ + { 0, 0, printargs, "o32_setresuid" }, /* 4185 */ + { 0, 0, printargs, "o32_getresuid" }, /* 4186 */ + { 0, 0, printargs, "o32_query_module" }, /* 4187 */ + { 0, 0, printargs, "o32_poll" }, /* 4188 */ + { 0, 0, printargs, "o32_nfsservctl" }, /* 4189 */ + { 0, 0, printargs, "o32_setresgid" }, /* 4190 */ + { 0, 0, printargs, "o32_getresgid" }, /* 4191 */ + { 0, 0, printargs, "o32_prctl" }, /* 4192 */ + { 0, 0, printargs, "o32_rt_sigreturn" }, /* 4193 */ + { 0, 0, printargs, "o32_rt_sigaction" }, /* 4194 */ + { 0, 0, printargs, "o32_rt_sigprocmask"}, /* 4195 */ + { 0, 0, printargs, "o32_rt_sigpending" }, /* 4196 */ + { 0, 0, printargs, "o32_rt_sigtimedwait"},/* 4197 */ + { 0, 0, printargs, "o32_rt_sigqueueinfo"},/* 4198 */ + { 0, 0, printargs, "o32_rt_siguspend" }, /* 4199 */ + { 0, 0, printargs, "o32_pread" }, /* 4200 */ + { 0, 0, printargs, "o32_pwrite" }, /* 4201 */ + { 0, 0, printargs, "o32_chown" }, /* 4202 */ + { 0, 0, printargs, "o32_getcwd" }, /* 4203 */ + { 0, 0, printargs, "o32_capget" }, /* 4204 */ + { 0, 0, printargs, "o32_capset" }, /* 4205 */ + { 0, 0, printargs, "o32_sigaltstatck" }, /* 4206 */ + { 0, 0, printargs, "o32_sendfile" }, /* 4207 */ + { 0, 0, printargs, "SYS_4208" }, /* 4208 */ + { 0, 0, printargs, "SYS_4209" }, /* 4209 */ + { 0, 0, printargs, "o32_mmap" }, /* 4210 */ + { 0, 0, printargs, "o32_truncate64" }, /* 4211 */ + { 0, 0, printargs, "o32_ftruncate64" }, /* 4212 */ + { 0, 0, printargs, "o32_stat64" }, /* 4213 */ + { 0, 0, printargs, "o32_lstat64" }, /* 4214 */ + { 0, 0, printargs, "o32_fstat64" }, /* 4215 */ + { 0, 0, printargs, "o32_pivot_root" }, /* 4216 */ + { 0, 0, printargs, "o32_mincore" }, /* 4217 */ + { 0, 0, printargs, "o32_madvise" }, /* 4218 */ + { 0, 0, printargs, "o32_getdents64" }, /* 4219 */ + { 0, 0, printargs, "o32_fcntl64" }, /* 4220 */ + { 0, 0, printargs, "SYS_4221" }, /* 4221 */ + { 0, 0, printargs, "o32_gettid" }, /* 4222 */ + { 5, TD, printargs, "o32_readahead" }, /* 4223 */ + { 5, TF, printargs, "o32_setxattr" }, /* 4224 */ + { 5, TF, printargs, "o32_lsetxattr" }, /* 4225 */ + { 5, TD, printargs, "o32_fsetxattr" }, /* 4226 */ + { 4, TF, printargs, "o32_getxattr" }, /* 4227 */ + { 4, TF, printargs, "o32_lgetxattr" }, /* 4228 */ + { 4, 0, printargs, "o32_fgetxattr" }, /* 4229 */ + { 3, TF, printargs, "o32_listxattr" }, /* 4230 */ + { 3, TF, printargs, "o32_llistxattr" }, /* 4231 */ + { 3, 0, printargs, "o32_flistxattr" }, /* 4232 */ + { 2, TF, printargs, "o32_removexattr" }, /* 4233 */ + { 2, TF, printargs, "o32_lremovexattr" }, /* 4234 */ + { 2, TD, printargs, "o32_fremovexattr" }, /* 4235 */ + { 2, TS, printargs, "o32_tkill" }, /* 4236 */ + { 5, TD|TN, printargs, "o32_sendfile64" }, /* 4237 */ + { 6, 0, printargs, "o32_futex" }, /* 4238 */ + { 3, 0, printargs, "o32_sched_setaffinity"}, /* 4239 */ + { 3, 0, printargs, "o32_sched_getaffinity"}, /* 4240 */ + { 2, 0, printargs, "o32_io_setup" }, /* 4241 */ + { 1, 0, printargs, "o32_io_destroy" }, /* 4242 */ + { 5, 0, printargs, "o32_io_getevents" }, /* 4243 */ + { 3, 0, printargs, "o32_io_submit" }, /* 4244 */ + { 3, 0, printargs, "o32_io_cancel" }, /* 4245 */ + { 1, TP, printargs, "o32_exit_group" }, /* 4246 */ + { 3, 0, printargs, "o32_lookup_dcookie"}, /* 4247 */ + { 1, 0, printargs, "o32_epoll_create" }, /* 4248 */ + { 4, TD, printargs, "o32_epoll_ctl" }, /* 4249 */ + { 3, TD, printargs, "o32_epoll_wait" }, /* 4250 */ + { 5, 0, printargs, "o32_remap_file_pages"}, /* 4251 */ + { 1, 0, printargs, "o32_set_tid_address"}, /* 4252 */ + { 0, 0, printargs, "o32_restart_syscall"}, /* 4253 */ + { 7, 0, printargs, "o32_fadvise64_64" }, /* 4254 */ + { 3, TF, printargs, "o32_statfs64" }, /* 4255 */ + { 2, TD, printargs, "o32_fstatfs64" }, /* 4256 */ + { 3, 0, printargs, "o32_timer_create" }, /* 4257 */ + { 4, 0, printargs, "o32_timer_settime" }, /* 4258 */ + { 2, 0, printargs, "o32_timer_gettime" }, /* 4259 */ + { 1, 0, printargs, "o32_timer_getoverrun"}, /* 4260 */ + { 1, 0, printargs, "o32_timer_delete" }, /* 4261 */ + { 2, 0, printargs, "o32_clock_settime" }, /* 4262 */ + { 2, 0, printargs, "o32_clock_gettime" }, /* 4263 */ + { 2, 0, printargs, "o32_clock_getres" }, /* 4264 */ + { 4, 0, printargs, "o32_clock_nanosleep"}, /* 4265 */ + { 3, TS, printargs, "o32_tgkill" }, /* 4266 */ + { 2, TF, printargs, "o32_utimes" }, /* 4267 */ + { 4, 0, printargs, "o32_mbind" }, /* 4268 */ + { 0, 0, printargs, "o32_SYS_4269" }, /* 4269 */ + { 0, 0, printargs, "o32_SYS_4270" }, /* 4270 */ + { 4, 0, printargs, "o32_mq_open" }, /* 4271 */ + { 1, 0, printargs, "o32_mq_unlink" }, /* 4272 */ + { 5, 0, printargs, "o32_mq_timedsend" }, /* 4273 */ + { 5, 0, printargs, "o32_mq_timedreceive"}, /* 4274 */ + { 2, 0, printargs, "o32_mq_notify" }, /* 4275 */ + { 3, 0, printargs, "o32_mq_getsetattr" }, /* 4276 */ + { 0, 0, printargs, "o32_SYS_4277" }, /* 4277 */ + { 5, TP, printargs, "o32_waitid" }, /* 4278 */ + { 0, 0, printargs, "o32_SYS_4279" }, /* 4279 */ + { 5, 0, printargs, "o32_add_key" }, /* 4280 */ + { 4, 0, printargs, "o32_request_key" }, /* 4281 */ + { 5, 0, printargs, "o32_keyctl" }, /* 4282 */ + { 1, 0, printargs, "o32_set_thread_area" }, /* 4283 */ + { 0, TD, printargs, "o32_inotify_init" }, /* 4284 */ + { 3, TD, printargs, "o32_inotify_add_watch" }, /* 4285 */ + { 2, TD, printargs, "o32_inotify_rm_watch" }, /* 4286 */ + { 4, 0, printargs, "o32_migrate_pages" }, /* 4287 */ + { 4, TD|TF, printargs, "o32_openat" }, /* 4288 */ + { 3, TD|TF, printargs, "o32_mkdirat" }, /* 4289 */ + { 4, TD|TF, printargs, "o32_mknodat" }, /* 4290 */ + { 5, TD|TF, printargs, "o32_fchownat" }, /* 4291 */ + { 3, TD|TF, printargs, "o32_futimesat" }, /* 4292 */ + { 4, TD|TD, printargs, "o32_newfstatat" }, /* 4293 */ + { 3, TD|TF, printargs, "o32_unlinkat" }, /* 4294 */ + { 4, TD|TF, printargs, "o32_renameat" }, /* 4295 */ + { 5, TD|TF, printargs, "o32_linkat" }, /* 4296 */ + { 3, TD|TF, printargs, "o32_symlinkat" }, /* 4297 */ + { 4, TD|TF, printargs, "o32_readlinkat" }, /* 4298 */ + { 3, TD|TF, printargs, "o32_fchmodat" }, /* 4299 */ + { 3, TD|TF, printargs, "o32_faccessat" }, /* 4300 */ + { 6, TD, printargs, "o32_pselect6" }, /* 4301 */ + { 5, TD, printargs, "o32_ppoll" }, /* 4302 */ + { 1, TP, printargs, "o32_unshare" }, /* 4303 */ + { 6, TD, printargs, "o32_splice" }, /* 4304 */ + { 4, TD, printargs, "o32_sync_file_range" }, /* 4305 */ + { 0, 0, printargs, "o32_SYS_4306" }, /* 4306 */ + { 0, 0, printargs, "o32_SYS_4307" }, /* 4307 */ + { 6, 0, printargs, "o32_move_pages" }, /* 4308 */ + { 0, 0, printargs, "o32_SYS_4309" }, /* 4309 */ + { 0, 0, printargs, "o32_SYS_4310" }, /* 4310 */ + { 0, 0, printargs, "o32_SYS_4311" }, /* 4311 */ + { 3, 0, printargs, "o32_getcpu" }, /* 4312 */ + { 5, TD, printargs, "o32_epoll_pwait" }, /* 4313 */ + { 0, 0, printargs, "o32_SYS_4314" }, /* 4314 */ + { 0, 0, printargs, "o32_SYS_4315" }, /* 4315 */ + { 0, 0, printargs, "o32_SYS_4316" }, /* 4316 */ + { 3, TD|TS, printargs, "o32_signalfd" }, /* 4317 */ + { 4, TD, printargs, "o32_timerfd" }, /* 4318 */ + { 1, TD, printargs, "o32_eventfd" }, /* 4319 */ +#endif + { 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 */ +#if defined (LINUX_MIPSN64) + /* For an N64 strace decode the N64 64-bit syscalls. */ + { 3, TF, sys_read, "read" }, /* 5000 */ /* start of Linux N64 */ + { 3, TF, sys_write, "write" }, /* 5001 */ + { 3, TF, sys_open, "open" }, /* 5002 */ + { 1, 0, sys_close, "close" }, /* 5003 */ + { 2, TF, sys_stat, "stat" }, /* 5004 */ + { 2, 0, sys_fstat, "fstat" }, /* 5005 */ + { 2, TF, sys_lstat, "lstat" }, /* 5006 */ + { 3, 0, sys_poll, "poll" }, /* 5007 */ + { 3, 0, sys_lseek, "lseek" }, /* 5008 */ + { 6, 0, sys_mmap, "mmap" }, /* 5009 */ + { 3, 0, sys_mprotect, "mprotect" }, /* 5010 */ + { 2, 0, sys_munmap, "munmap" }, /* 5011 */ + { 1, 0, sys_brk, "brk" }, /* 5012 */ + { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 5013 */ + { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 5014 */ + { 3, 0, sys_ioctl, "ioctl" }, /* 5015 */ + { 6, TF, sys_pread64, "pread" }, /* 5016 */ + { 6, TF, sys_pwrite64, "pwrite" }, /* 5017 */ + { 3, 0, sys_readv, "readv" }, /* 5018 */ + { 3, 0, sys_writev, "writev" }, /* 5019 */ + { 2, TF, sys_access, "access" }, /* 5020 */ + { 1, 0, sys_pipe, "pipe" }, /* 5021 */ + { 5, 0, sys_select, "_newselect" }, /* 5022 */ + { 0, 0, sys_sched_yield, "sched_yield" }, /* 5023 */ + { 5, 0, sys_mremap, "mremap" }, /* 5024 */ + { 3, 0, sys_msync, "msync" }, /* 5025 */ + { 3, 0, printargs, "mincore" }, /* 5026 */ + { 3, 0, sys_madvise, "madvise" }, /* 5027 */ + { 3, TI, sys_shmget, "shmget" }, /* 5028 */ + { 3, TI, sys_shmat, "shmgat" }, /* 5029 */ + { 3, TI, sys_shmctl, "shmctl" }, /* 5030 */ + { 1, 0, sys_dup, "dup" }, /* 5031 */ + { 2, 0, sys_dup2, "dup2" }, /* 5032 */ + { 0, TS, sys_pause, "pause" }, /* 5033 */ + { 2, 0, sys_nanosleep, "nanosleep" }, /* 5034 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 5035 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 5036 */ + { 1, 0, sys_alarm, "alarm" }, /* 5037 */ + { 0, 0, sys_getpid, "getpid" }, /* 5038 */ + { 4, TD|TN, sys_sendfile, "sendfile" }, /* 5039 */ + { 2, 0, sys_socketcall, "socketcall" }, /* 5040 */ + { 3, TN, sys_connect, "connect" }, /* 5041 */ + { 3, TN, sys_accept, "accept" }, /* 5042 */ + { 6, TN, sys_sendto, "sendto" }, /* 5043 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 5044 */ + { 3, TN, sys_sendmsg, "sendmsg" }, /* 5045 */ + { 3, TN, sys_recvmsg, "recvmsg" }, /* 5046 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 5047 */ + { 3, TN, sys_bind, "bind" }, /* 5048 */ + { 2, TN, sys_listen, "listen" }, /* 5049 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 5050 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 5051 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 5052 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 5053 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 5054 */ + { 2, TP, sys_clone, "clone" }, /* 5055 */ + { 0, TP, sys_fork, "fork" }, /* 5056 */ + { 3, TF|TP, sys_execve, "execve" }, /* 5057 */ + { 1, TP, sys_exit, "exit" }, /* 5058 */ + { 4, TP, sys_wait4, "wait4" }, /* 5059 */ + { 2, TS, sys_kill, "kill" }, /* 5060 */ + { 1, 0, sys_uname, "uname" }, /* 5061 */ + { 3, TI, sys_semget, "semget" }, /* 5062 */ + { 3, TI, printargs, "semop" }, /* 5063 */ + { 4, TI, sys_semctl, "semctl" }, /* 5064 */ + { 1, TI, sys_shmdt, "shmdt" }, /* 5065 */ + { 2, TI, sys_msgget, "msgget" }, /* 5066 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 5067 */ + { 5, TI, sys_msgrcv, "msgrcv" }, /* 5068 */ + { 3, TI, sys_msgctl, "msgctl" }, /* 5069 */ + { 3, 0, sys_fcntl, "fcntl" }, /* 5070 */ + { 2, 0, sys_flock, "flock" }, /* 5071 */ + { 1, 0, sys_fsync, "fsync" }, /* 5072 */ + { 1, 0, sys_fdatasync, "fdatasync" }, /* 5073 */ + { 2, TF, sys_truncate, "truncate" }, /* 5074 */ + { 2, 0, sys_ftruncate, "ftruncate" }, /* 5075 */ + { 3, 0, sys_getdents, "getdents" }, /* 5076 */ + { 2, TF, sys_getcwd, "getcwd" }, /* 5077 */ + { 1, TF, sys_chdir, "chdir" }, /* 5078 */ + { 1, TF, sys_fchdir, "fchdir" }, /* 5079 */ + { 2, TF, sys_rename, "rename" }, /* 5080 */ + { 2, TF, sys_mkdir, "mkdir" }, /* 5081 */ + { 1, TF, sys_rmdir, "rmdir" }, /* 5082 */ + { 2, TF, sys_creat, "creat" }, /* 5083 */ + { 2, TF, sys_link, "link" }, /* 5084 */ + { 1, TF, sys_unlink, "unlink" }, /* 5085 */ + { 2, TF, sys_symlink, "symlink" }, /* 5086 */ + { 3, TF, sys_readlink, "readlink" }, /* 5087 */ + { 2, TF, sys_chmod, "chmod" }, /* 5088 */ + { 2, 0, sys_fchmod, "fchmod" }, /* 5089 */ + { 3, TF, sys_chown, "chown" }, /* 5090 */ + { 3, 0, sys_fchown, "fchown" }, /* 5091 */ + { 3, TF, sys_chown, "lchown" }, /* 5092 */ + { 1, 0, sys_umask, "umask" }, /* 5093 */ + { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 5094 */ + { 2, 0, sys_getrlimit, "getrlimit" }, /* 5095 */ + { 2, 0, sys_getrusage, "getrusage" }, /* 5096 */ + { 1, 0, sys_sysinfo, "sysinfo" }, /* 5097 */ + { 1, 0, sys_times, "times" }, /* 5098 */ + { 4, 0, sys_ptrace, "ptrace" }, /* 5099 */ + { 0, 0, sys_getuid, "getuid" }, /* 5100 */ + { 3, 0, sys_syslog, "syslog" }, /* 5101 */ + { 0, 0, sys_getgid, "getgid" }, /* 5102 */ + { 1, 0, sys_setuid, "setuid" }, /* 5103 */ + { 1, 0, sys_setgid, "setgid" }, /* 5104 */ + { 0, 0, sys_geteuid, "geteuid" }, /* 5105 */ + { 0, 0, sys_getegid, "getegid" }, /* 5106 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 5107 */ + { 0, 0, sys_getppid, "getppid" }, /* 5108 */ + { 0, 0, sys_getpgrp, "getpgrp" }, /* 5109 */ + { 0, 0, sys_setsid, "setsid" }, /* 5110 */ + { 2, 0, sys_setreuid, "setreuid" }, /* 5111 */ + { 2, 0, sys_setregid, "setregid" }, /* 5112 */ + { 2, 0, sys_getgroups, "getgroups" }, /* 5113 */ + { 2, 0, sys_setgroups, "setgroups" }, /* 5114 */ + { 3, 0, sys_setresuid, "setresuid" }, /* 5115 */ + { 3, 0, sys_getresuid, "getresuid" }, /* 5116 */ + { 3, 0, sys_setresgid, "setresgid" }, /* 5117 */ + { 3, 0, sys_getresgid, "getresgid" }, /* 5118 */ + { 0, 0, sys_getpgid, "getpgid" }, /* 5119 */ + { 1, 0, sys_setfsuid, "setfsuid" }, /* 5120 */ + { 1, 0, sys_setfsgid, "setfsgid" }, /* 5121 */ + { 1, 0, sys_getsid, "getsid" }, /* 5122 */ + { 2, 0, sys_capget, "capget" }, /* 5123 */ + { 2, 0, sys_capset, "capset" }, /* 5124 */ + { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 5125 */ + { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"},/* 5126 */ + { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"},/* 5127 */ + { 2, TS, sys_rt_sigsuspend, "rt_siguspend" }, /* 5128 */ + { 2, TS, sys_sigaltstack, "sigaltstatck" }, /* 5129 */ + { 2, TF, sys_utime, "utime" }, /* 5130 */ + { 3, TF, sys_mknod, "mknod" }, /* 5131 */ + { 1, 0, sys_personality, "personality" }, /* 5132 */ + { 2, 0, sys_ustat, "ustat" }, /* 5133 */ + { 3, 0, sys_statfs, "statfs" }, /* 5134 */ + { 3, 0, sys_fstatfs, "fstatfs" }, /* 5135 */ + { 5, 0, sys_sysfs, "sysfs" }, /* 5136 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 5137 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 5138 */ + { 2, 0, sys_sched_setparam, "sched_setparam"}, /* 5139 */ + { 2, 0, sys_sched_getparam, "sched_getparam"}, /* 5140 */ + { 3, 0, sys_sched_setscheduler, "sched_setscheduler"}, /* 5141 */ + { 1, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 5142 */ + { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 5143 */ + { 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 5144 */ + { 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 5145 */ + { 2, 0, sys_mlock, "mlock" }, /* 5146 */ + { 2, 0, sys_munlock, "munlock" }, /* 5147 */ + { 1, 0, sys_mlockall, "mlockall" }, /* 5148 */ + { 0, 0, sys_munlockall, "munlockall" }, /* 5149 */ + { 0, 0, sys_vhangup, "vhangup" }, /* 5150 */ + { 2, 0, sys_pivotroot, "pivot_root" }, /* 5151 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 5152 */ + { 5, 0, printargs, "prctl" }, /* 5153 */ + { 1, 0, sys_adjtimex, "adjtimex" }, /* 5154 */ + { 2, 0, sys_setrlimit, "setrlimit" }, /* 5155 */ + { 1, TF, sys_chroot, "chroot" }, /* 5156 */ + { 0, 0, sys_sync, "sync" }, /* 5157 */ + { 1, TF, sys_acct, "acct" }, /* 5158 */ + { 2, 0, sys_settimeofday, "settimeofday" }, /* 5159 */ + { 5, TF, sys_mount, "mount" }, /* 5160 */ + { 2, TF, sys_umount2, "umount" }, /* 5161 */ + { 1, TF, sys_swapon, "swapon" }, /* 5162 */ + { 1, 0, sys_swapoff, "swapoff" }, /* 5163 */ + { 3, 0, sys_reboot, "reboot" }, /* 5164 */ + { 2, 0, sys_sethostname, "sethostname" }, /* 5165 */ + { 2, 0, sys_setdomainname, "setdomainname" }, /* 5166 */ + { 2, 0, sys_create_module, "create_module" }, /* 5167 */ + { 4, 0, sys_init_module, "init_module" }, /* 5168 */ + { 1, 0, sys_delete_module, "delete_module" }, /* 5169 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 5170 */ + { 5, 0, sys_query_module, "query_module" }, /* 5171 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 5172 */ + { 3, 0, printargs, "nfsservctl" }, /* 5173 */ + { 5, TN, printargs, "getpmsg" }, /* 5174 */ + { 5, TN, printargs, "putpmsg" }, /* 5175 */ + { 0, 0, sys_afs_syscall, "afs_syscall" }, /* 5176 */ + { 0, 0, printargs, "reserved177" }, /* 5177 */ + { 0, 0, printargs, "gettid" }, /* 5178 */ + { 3, 0, sys_readahead, "readahead" }, /* 5179 */ + { 5, 0, sys_setxattr, "setxattr" }, /* 5180 */ + { 5, 0, sys_setxattr, "lsetxattr" }, /* 5181 */ + { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 5182 */ + { 4, 0, sys_getxattr, "getxattr" }, /* 5183 */ + { 4, 0, sys_getxattr, "lgetxattr" }, /* 5184 */ + { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 5185 */ + { 3, 0, sys_listxattr, "listxattr" }, /* 5186 */ + { 3, 0, sys_listxattr, "llistxattr" }, /* 5187 */ + { 3, 0, sys_flistxattr, "flistxattr" }, /* 5188 */ + { 2, 0, sys_removexattr, "removexattr" }, /* 5189 */ + { 2, 0, sys_removexattr, "lremovexattr" }, /* 5190 */ + { 2, 0, sys_fremovexattr, "fremovexattr" }, /* 5191 */ + { 2, 0, sys_kill, "tkill" }, /* 5192 */ + { 1, 0, sys_time, "time" }, /* 5193 */ + { 5, 0, printargs, "futex" }, /* 5194 */ + { 3, 0, printargs, "sched_setaffinity"}, /* 5195 */ + { 3, 0, printargs, "sched_getaffinity"}, /* 5196 */ + { 3, 0, printargs, "cacheflush" }, /* 5197 */ + { 3, 0, printargs, "cachectl" }, /* 5198 */ + { 4, 0, sys_sysmips, "sysmips" }, /* 5199 */ + { 0, 0, printargs, "SYS_5200" }, /* 5200 */ + { 0, 0, printargs, "SYS_5201" }, /* 5201 */ + { 0, 0, printargs, "SYS_5202" }, /* 5202 */ + { 0, 0, printargs, "SYS_5203" }, /* 5203 */ + { 0, 0, printargs, "SYS_5204" }, /* 5204 */ + { 1, TP, sys_exit, "exit_group" }, /* 5205 */ + { 0, 0, printargs, "SYS_5206" }, /* 5206 */ + { 0, 0, printargs, "SYS_5207" }, /* 5207 */ + { 0, 0, printargs, "SYS_5208" }, /* 5208 */ + { 0, 0, printargs, "SYS_5209" }, /* 5209 */ + { 0, 0, printargs, "SYS_5210" }, /* 5210 */ + { 1, TS, printargs, "rt_sigreturn" }, /* 5211 */ + { 5, 0, printargs, "timer_create" }, /* 5212 */ + { 5, 0, printargs, "timer_settime" }, /* 5213 */ + { 5, 0, printargs, "timer_gettime" }, /* 5214 */ + { 5, 0, printargs, "timer_getoverrun"}, /* 5215 */ + { 5, 0, printargs, "timer_delete" }, /* 5216 */ + { 5, 0, printargs, "clock_settime" }, /* 5217 */ + { 5, 0, printargs, "clock_gettime" }, /* 5218 */ + { 5, 0, printargs, "clock_getres" }, /* 5219 */ + { 5, 0, printargs, "clock_nanosleep"}, /* 5220 */ +#else + { 0, 0, printargs, "n64_read" }, /* 5000 */ + { 0, 0, printargs, "n64_write" }, /* 5001 */ + { 0, 0, printargs, "n64_open" }, /* 5002 */ + { 0, 0, printargs, "n64_close" }, /* 5003 */ + { 0, 0, printargs, "n64_stat" }, /* 5004 */ + { 0, 0, printargs, "n64_fstat" }, /* 5005 */ + { 0, 0, printargs, "n64_lstat" }, /* 5006 */ + { 0, 0, printargs, "n64_poll" }, /* 5007 */ + { 0, 0, printargs, "n64_lseek" }, /* 5008 */ + { 0, 0, printargs, "n64_mmap" }, /* 5009 */ + { 0, 0, printargs, "n64_mprotect" }, /* 5010 */ + { 0, 0, printargs, "n64_munmap" }, /* 5011 */ + { 0, 0, printargs, "n64_brk" }, /* 5012 */ + { 0, 0, printargs, "n64_rt_sigaction" }, /* 5013 */ + { 0, 0, printargs, "n64_rt_sigprocmask" }, /* 5014 */ + { 0, 0, printargs, "n64_ioctl" }, /* 5015 */ + { 0, 0, printargs, "n64_pread" }, /* 5016 */ + { 0, 0, printargs, "n64_pwrite" }, /* 5017 */ + { 0, 0, printargs, "n64_readv" }, /* 5018 */ + { 0, 0, printargs, "n64_writev" }, /* 5019 */ + { 0, 0, printargs, "n64_access" }, /* 5020 */ + { 0, 0, printargs, "n64_pipe" }, /* 5021 */ + { 0, 0, printargs, "n64__newselect" }, /* 5022 */ + { 0, 0, printargs, "n64_sched_yield" }, /* 5023 */ + { 0, 0, printargs, "n64_mremap" }, /* 5024 */ + { 0, 0, printargs, "n64_msync" }, /* 5025 */ + { 0, 0, printargs, "n64_mincore" }, /* 5026 */ + { 0, 0, printargs, "n64_madvise" }, /* 5027 */ + { 0, 0, printargs, "n64_shmget" }, /* 5028 */ + { 0, 0, printargs, "n64_shmgat" }, /* 5029 */ + { 0, 0, printargs, "n64_shmctl" }, /* 5030 */ + { 0, 0, printargs, "n64_dup" }, /* 5031 */ + { 0, 0, printargs, "n64_dup2" }, /* 5032 */ + { 0, 0, printargs, "n64_pause" }, /* 5033 */ + { 0, 0, printargs, "n64_nanosleep" }, /* 5034 */ + { 0, 0, printargs, "n64_getitimer" }, /* 5035 */ + { 0, 0, printargs, "n64_setitimer" }, /* 5036 */ + { 0, 0, printargs, "n64_alarm" }, /* 5037 */ + { 0, 0, printargs, "n64_getpid" }, /* 5038 */ + { 0, 0, printargs, "n64_sendfile" }, /* 5039 */ + { 0, 0, printargs, "n64_socketcall" }, /* 5040 */ + { 0, 0, printargs, "n64_connect" }, /* 5041 */ + { 0, 0, printargs, "n64_accept" }, /* 5042 */ + { 0, 0, printargs, "n64_sendto" }, /* 5043 */ + { 0, 0, printargs, "n64_recvfrom" }, /* 5044 */ + { 0, 0, printargs, "n64_sendmsg" }, /* 5045 */ + { 0, 0, printargs, "n64_recvmsg" }, /* 5046 */ + { 0, 0, printargs, "n64_shutdown" }, /* 5047 */ + { 0, 0, printargs, "n64_bind" }, /* 5048 */ + { 0, 0, printargs, "n64_listen" }, /* 5049 */ + { 0, 0, printargs, "n64_getsockname" }, /* 5050 */ + { 0, 0, printargs, "n64_getpeername" }, /* 5051 */ + { 0, 0, printargs, "n64_socketpair" }, /* 5052 */ + { 0, 0, printargs, "n64_setsockopt" }, /* 5053 */ + { 0, 0, printargs, "n64_getsockopt" }, /* 5054 */ + { 0, 0, printargs, "n64_clone" }, /* 5055 */ + { 0, 0, printargs, "n64_fork" }, /* 5056 */ + { 0, 0, printargs, "n64_execve" }, /* 5057 */ + { 0, 0, printargs, "n64_exit" }, /* 5058 */ + { 0, 0, printargs, "n64_wait4" }, /* 5059 */ + { 0, 0, printargs, "n64_kill" }, /* 5060 */ + { 0, 0, printargs, "n64_uname" }, /* 5061 */ + { 0, 0, printargs, "n64_semget" }, /* 5062 */ + { 0, 0, printargs, "n64_semop" }, /* 5063 */ + { 0, 0, printargs, "n64_semctl" }, /* 5064 */ + { 0, 0, printargs, "n64_shmdt" }, /* 5065 */ + { 0, 0, printargs, "n64_msgget" }, /* 5066 */ + { 0, 0, printargs, "n64_msgsnd" }, /* 5067 */ + { 0, 0, printargs, "n64_msgrcv" }, /* 5068 */ + { 0, 0, printargs, "n64_msgctl" }, /* 5069 */ + { 0, 0, printargs, "n64_fcntl" }, /* 5070 */ + { 0, 0, printargs, "n64_flock" }, /* 5071 */ + { 0, 0, printargs, "n64_fsync" }, /* 5072 */ + { 0, 0, printargs, "n64_fdatasync" }, /* 5073 */ + { 0, 0, printargs, "n64_truncate" }, /* 5074 */ + { 0, 0, printargs, "n64_ftruncate" }, /* 5075 */ + { 0, 0, printargs, "n64_getdents" }, /* 5076 */ + { 0, 0, printargs, "n64_getcwd" }, /* 5077 */ + { 0, 0, printargs, "n64_chdir" }, /* 5078 */ + { 0, 0, printargs, "n64_fchdir" }, /* 5079 */ + { 0, 0, printargs, "n64_rename" }, /* 5080 */ + { 0, 0, printargs, "n64_mkdir" }, /* 5081 */ + { 0, 0, printargs, "n64_rmdir" }, /* 5082 */ + { 0, 0, printargs, "n64_creat" }, /* 5083 */ + { 0, 0, printargs, "n64_link" }, /* 5084 */ + { 0, 0, printargs, "n64_unlink" }, /* 5085 */ + { 0, 0, printargs, "n64_symlink" }, /* 5086 */ + { 0, 0, printargs, "n64_readlink" }, /* 5087 */ + { 0, 0, printargs, "n64_chmod" }, /* 5088 */ + { 0, 0, printargs, "n64_fchmod" }, /* 5089 */ + { 0, 0, printargs, "n64_chown" }, /* 5090 */ + { 0, 0, printargs, "n64_fchown" }, /* 5091 */ + { 0, 0, printargs, "n64_lchown" }, /* 5092 */ + { 0, 0, printargs, "n64_umask" }, /* 5093 */ + { 0, 0, printargs, "n64_gettimeofday" }, /* 5094 */ + { 0, 0, printargs, "n64_getrlimit" }, /* 5095 */ + { 0, 0, printargs, "n64_getrusage" }, /* 5096 */ + { 0, 0, printargs, "n64_sysinfo" }, /* 5097 */ + { 0, 0, printargs, "n64_times" }, /* 5098 */ + { 0, 0, printargs, "n64_ptrace" }, /* 5099 */ + { 0, 0, printargs, "n64_getuid" }, /* 5100 */ + { 0, 0, printargs, "n64_syslog" }, /* 5101 */ + { 0, 0, printargs, "n64_getgid" }, /* 5102 */ + { 0, 0, printargs, "n64_setuid" }, /* 5103 */ + { 0, 0, printargs, "n64_setgid" }, /* 5104 */ + { 0, 0, printargs, "n64_geteuid" }, /* 5105 */ + { 0, 0, printargs, "n64_getegid" }, /* 5106 */ + { 0, 0, printargs, "n64_setpgid" }, /* 5107 */ + { 0, 0, printargs, "n64_getppid" }, /* 5108 */ + { 0, 0, printargs, "n64_getpgrp" }, /* 5109 */ + { 0, 0, printargs, "n64_setsid" }, /* 5110 */ + { 0, 0, printargs, "n64_setreuid" }, /* 5111 */ + { 0, 0, printargs, "n64_setregid" }, /* 5112 */ + { 0, 0, printargs, "n64_getgroups" }, /* 5113 */ + { 0, 0, printargs, "n64_setgroups" }, /* 5114 */ + { 0, 0, printargs, "n64_setresuid" }, /* 5115 */ + { 0, 0, printargs, "n64_getresuid" }, /* 5116 */ + { 0, 0, printargs, "n64_setresgid" }, /* 5117 */ + { 0, 0, printargs, "n64_getresgid" }, /* 5118 */ + { 0, 0, printargs, "n64_getpgid" }, /* 5119 */ + { 0, 0, printargs, "n64_setfsuid" }, /* 5120 */ + { 0, 0, printargs, "n64_setfsgid" }, /* 5121 */ + { 0, 0, printargs, "n64_getsid" }, /* 5122 */ + { 0, 0, printargs, "n64_capget" }, /* 5123 */ + { 0, 0, printargs, "n64_capset" }, /* 5124 */ + { 0, 0, printargs, "n64_rt_sigpending" }, /* 5125 */ + { 0, 0, printargs, "n64_rt_sigtimedwait" }, /* 5126 */ + { 0, 0, printargs, "n64_rt_sigqueueinfo" }, /* 5127 */ + { 0, 0, printargs, "n64_rt_siguspend" }, /* 5128 */ + { 0, 0, printargs, "n64_sigaltstatck" }, /* 5129 */ + { 0, 0, printargs, "n64_utime" }, /* 5130 */ + { 0, 0, printargs, "n64_mknod" }, /* 5131 */ + { 0, 0, printargs, "n64_personality" }, /* 5132 */ + { 0, 0, printargs, "n64_ustat" }, /* 5133 */ + { 0, 0, printargs, "n64_statfs" }, /* 5134 */ + { 0, 0, printargs, "n64_fstatfs" }, /* 5135 */ + { 0, 0, printargs, "n64_sysfs" }, /* 5136 */ + { 0, 0, printargs, "n64_getpriority" }, /* 5137 */ + { 0, 0, printargs, "n64_setpriority" }, /* 5138 */ + { 0, 0, printargs, "n64_sched_setparam" }, /* 5139 */ + { 0, 0, printargs, "n64_sched_getparam" }, /* 5140 */ + { 0, 0, printargs, "n64_sched_setscheduler"}, /* 5141 */ + { 0, 0, printargs, "n64_sched_getscheduler"}, /* 5142 */ + { 0, 0, printargs, "n64_sched_get_priority_max"}, /* 5143 */ + { 0, 0, printargs, "n64_sched_get_priority_min"}, /* 5144 */ + { 0, 0, printargs, "n64_sched_rr_get_interval"}, /* 5145 */ + { 0, 0, printargs, "n64_mlock" }, /* 5146 */ + { 0, 0, printargs, "n64_munlock" }, /* 5147 */ + { 0, 0, printargs, "n64_mlockall" }, /* 5148 */ + { 0, 0, printargs, "n64_munlockall" }, /* 5149 */ + { 0, 0, printargs, "n64_vhangup" }, /* 5150 */ + { 0, 0, printargs, "n64_pivot_root" }, /* 5151 */ + { 0, 0, printargs, "n64__sysctl" }, /* 5152 */ + { 0, 0, printargs, "n64_prctl" }, /* 5153 */ + { 0, 0, printargs, "n64_adjtimex" }, /* 5154 */ + { 0, 0, printargs, "n64_setrlimit" }, /* 5155 */ + { 0, 0, printargs, "n64_chroot" }, /* 5156 */ + { 0, 0, printargs, "n64_sync" }, /* 5157 */ + { 0, 0, printargs, "n64_acct" }, /* 5158 */ + { 0, 0, printargs, "n64_settimeofday" }, /* 5159 */ + { 0, 0, printargs, "n64_mount" }, /* 5160 */ + { 0, 0, printargs, "n64_umount" }, /* 5161 */ + { 0, 0, printargs, "n64_swapon" }, /* 5162 */ + { 0, 0, printargs, "n64_swapoff" }, /* 5163 */ + { 0, 0, printargs, "n64_reboot" }, /* 5164 */ + { 0, 0, printargs, "n64_sethostname" }, /* 5165 */ + { 0, 0, printargs, "n64_setdomainname" }, /* 5166 */ + { 0, 0, printargs, "n64_create_module" }, /* 5167 */ + { 0, 0, printargs, "n64_init_module" }, /* 5168 */ + { 0, 0, printargs, "n64_delete_module" }, /* 5169 */ + { 0, 0, printargs, "n64_get_kernel_syms" }, /* 5170 */ + { 0, 0, printargs, "n64_query_module" }, /* 5171 */ + { 0, 0, printargs, "n64_quotactl" }, /* 5172 */ + { 0, 0, printargs, "n64_nfsservctl" }, /* 5173 */ + { 0, 0, printargs, "n64_getpmsg" }, /* 5174 */ + { 0, 0, printargs, "n64_putpmsg" }, /* 5175 */ + { 0, 0, printargs, "n64_afs_syscall" }, /* 5176 */ + { 0, 0, printargs, "n64_reserved177" }, /* 5177 */ + { 0, 0, printargs, "n64_gettid" }, /* 5178 */ + { 0, 0, printargs, "n64_readahead" }, /* 5179 */ + { 0, 0, printargs, "n64_setxattr" }, /* 5180 */ + { 0, 0, printargs, "n64_lsetxattr" }, /* 5181 */ + { 0, 0, printargs, "n64_fsetxattr" }, /* 5182 */ + { 0, 0, printargs, "n64_getxattr" }, /* 5183 */ + { 0, 0, printargs, "n64_lgetxattr" }, /* 5184 */ + { 0, 0, printargs, "n64_fgetxattr" }, /* 5185 */ + { 0, 0, printargs, "n64_listxattr" }, /* 5186 */ + { 0, 0, printargs, "n64_llistxattr" }, /* 5187 */ + { 0, 0, printargs, "n64_flistxattr" }, /* 5188 */ + { 0, 0, printargs, "n64_removexattr" }, /* 5189 */ + { 0, 0, printargs, "n64_lremovexattr" }, /* 5190 */ + { 0, 0, printargs, "n64_fremovexattr" }, /* 5191 */ + { 0, 0, printargs, "n64_tkill" }, /* 5192 */ + { 0, 0, printargs, "n64_time" }, /* 5193 */ + { 0, 0, printargs, "n64_futex" }, /* 5194 */ + { 0, 0, printargs, "n64_sched_setaffinity" }, /* 5195 */ + { 0, 0, printargs, "n64_sched_getaffinity" }, /* 5196 */ + { 0, 0, printargs, "n64_cacheflush" }, /* 5197 */ + { 0, 0, printargs, "n64_cachectl" }, /* 5198 */ + { 0, 0, printargs, "n64_sysmips" }, /* 5199 */ + { 0, 0, printargs, "SYS_5200" }, /* 5200 */ + { 0, 0, printargs, "SYS_5201" }, /* 5201 */ + { 0, 0, printargs, "SYS_5202" }, /* 5202 */ + { 0, 0, printargs, "SYS_5203" }, /* 5203 */ + { 0, 0, printargs, "SYS_5204" }, /* 5204 */ + { 1, TP, printargs, "n64_exit_group" }, /* 5205 */ + { 0, 0, printargs, "SYS_5206" }, /* 5206 */ + { 0, 0, printargs, "SYS_5207" }, /* 5207 */ + { 0, 0, printargs, "SYS_5208" }, /* 5208 */ + { 0, 0, printargs, "SYS_5209" }, /* 5209 */ + { 0, 0, printargs, "SYS_5210" }, /* 5210 */ + { 0, 0, printargs, "n64_rt_sigreturn" }, /* 5211 */ + { 5, 0, printargs, "n64_timer_create" }, /* 5212 */ + { 5, 0, printargs, "n64_timer_settime" }, /* 5213 */ + { 5, 0, printargs, "n64_timer_gettime" }, /* 5214 */ + { 5, 0, printargs, "n64_timer_getoverrun"}, /* 5215 */ + { 5, 0, printargs, "n64_timer_delete" }, /* 5216 */ + { 5, 0, printargs, "n64_clock_settime" }, /* 5217 */ + { 5, 0, printargs, "n64_clock_gettime" }, /* 5218 */ + { 5, 0, printargs, "n64_clock_getres" }, /* 5219 */ + { 5, 0, printargs, "n64_clock_nanosleep"}, /* 5220 */ +#endif + { 0, 0, printargs, "SYS_5221" }, /* 5221 */ + { 0, 0, printargs, "SYS_5222" }, /* 5222 */ + { 0, 0, printargs, "SYS_5223" }, /* 5223 */ + { 0, 0, printargs, "SYS_5224" }, /* 5224 */ + { 0, 0, printargs, "SYS_5225" }, /* 5225 */ + { 0, 0, printargs, "SYS_5226" }, /* 5226 */ + { 0, 0, printargs, "SYS_5227" }, /* 5227 */ + { 0, 0, printargs, "SYS_5228" }, /* 5228 */ + { 0, 0, printargs, "SYS_5229" }, /* 5229 */ + { 0, 0, printargs, "SYS_5230" }, /* 5230 */ + { 0, 0, printargs, "SYS_5231" }, /* 5231 */ + { 0, 0, printargs, "SYS_5232" }, /* 5232 */ + { 0, 0, printargs, "SYS_5233" }, /* 5233 */ + { 0, 0, printargs, "SYS_5234" }, /* 5234 */ + { 0, 0, printargs, "SYS_5235" }, /* 5235 */ + { 0, 0, printargs, "SYS_5236" }, /* 5236 */ + { 0, 0, printargs, "SYS_5237" }, /* 5237 */ + { 0, 0, printargs, "SYS_5238" }, /* 5238 */ + { 0, 0, printargs, "SYS_5239" }, /* 5239 */ + { 0, 0, printargs, "SYS_5240" }, /* 5240 */ + { 0, 0, printargs, "SYS_5241" }, /* 5241 */ + { 0, 0, printargs, "SYS_5242" }, /* 5242 */ + { 0, 0, printargs, "SYS_5243" }, /* 5243 */ + { 0, 0, printargs, "SYS_5244" }, /* 5244 */ + { 0, 0, printargs, "SYS_5245" }, /* 5245 */ + { 0, 0, printargs, "SYS_5246" }, /* 5246 */ + { 0, 0, printargs, "SYS_5247" }, /* 5247 */ + { 0, 0, printargs, "SYS_5248" }, /* 5248 */ + { 0, 0, printargs, "SYS_5249" }, /* 5249 */ + { 0, 0, printargs, "SYS_5250" }, /* 5250 */ + { 0, 0, printargs, "SYS_5251" }, /* 5251 */ + { 0, 0, printargs, "SYS_5252" }, /* 5252 */ + { 0, 0, printargs, "SYS_5253" }, /* 5253 */ + { 0, 0, printargs, "SYS_5254" }, /* 5254 */ + { 0, 0, printargs, "SYS_5255" }, /* 5255 */ + { 0, 0, printargs, "SYS_5256" }, /* 5256 */ + { 0, 0, printargs, "SYS_5257" }, /* 5257 */ + { 0, 0, printargs, "SYS_5258" }, /* 5258 */ + { 0, 0, printargs, "SYS_5259" }, /* 5259 */ + { 0, 0, printargs, "SYS_5260" }, /* 5260 */ + { 0, 0, printargs, "SYS_5261" }, /* 5261 */ + { 0, 0, printargs, "SYS_5262" }, /* 5262 */ + { 0, 0, printargs, "SYS_5263" }, /* 5263 */ + { 0, 0, printargs, "SYS_5264" }, /* 5264 */ + { 0, 0, printargs, "SYS_5265" }, /* 5265 */ + { 0, 0, printargs, "SYS_5266" }, /* 5266 */ + { 0, 0, printargs, "SYS_5267" }, /* 5267 */ + { 0, 0, printargs, "SYS_5268" }, /* 5268 */ + { 0, 0, printargs, "SYS_5269" }, /* 5269 */ + { 0, 0, printargs, "SYS_5270" }, /* 5270 */ + { 0, 0, printargs, "SYS_5271" }, /* 5271 */ + { 0, 0, printargs, "SYS_5272" }, /* 5272 */ + { 0, 0, printargs, "SYS_5273" }, /* 5273 */ + { 0, 0, printargs, "SYS_5274" }, /* 5274 */ + { 0, 0, printargs, "SYS_5275" }, /* 5275 */ + { 0, 0, printargs, "SYS_5276" }, /* 5276 */ + { 0, 0, printargs, "SYS_5277" }, /* 5277 */ + { 0, 0, printargs, "SYS_5278" }, /* 5278 */ + { 0, 0, printargs, "SYS_5279" }, /* 5279 */ + { 0, 0, printargs, "SYS_5280" }, /* 5280 */ + { 0, 0, printargs, "SYS_5281" }, /* 5281 */ + { 0, 0, printargs, "SYS_5282" }, /* 5282 */ + { 0, 0, printargs, "SYS_5283" }, /* 5283 */ + { 0, 0, printargs, "SYS_5284" }, /* 5284 */ + { 0, 0, printargs, "SYS_5285" }, /* 5285 */ + { 0, 0, printargs, "SYS_5286" }, /* 5286 */ + { 0, 0, printargs, "SYS_5287" }, /* 5287 */ + { 0, 0, printargs, "SYS_5288" }, /* 5288 */ + { 0, 0, printargs, "SYS_5289" }, /* 5289 */ + { 0, 0, printargs, "SYS_5290" }, /* 5290 */ + { 0, 0, printargs, "SYS_5291" }, /* 5291 */ + { 0, 0, printargs, "SYS_5292" }, /* 5292 */ + { 0, 0, printargs, "SYS_5293" }, /* 5293 */ + { 0, 0, printargs, "SYS_5294" }, /* 5294 */ + { 0, 0, printargs, "SYS_5295" }, /* 5295 */ + { 0, 0, printargs, "SYS_5296" }, /* 5296 */ + { 0, 0, printargs, "SYS_5297" }, /* 5297 */ + { 0, 0, printargs, "SYS_5298" }, /* 5298 */ + { 0, 0, printargs, "SYS_5299" }, /* 5299 */ + { 0, 0, printargs, "SYS_5300" }, /* 5300 */ + { 0, 0, printargs, "SYS_5301" }, /* 5301 */ + { 0, 0, printargs, "SYS_5302" }, /* 5302 */ + { 0, 0, printargs, "SYS_5303" }, /* 5303 */ + { 0, 0, printargs, "SYS_5304" }, /* 5304 */ + { 0, 0, printargs, "SYS_5305" }, /* 5305 */ + { 0, 0, printargs, "SYS_5306" }, /* 5306 */ + { 0, 0, printargs, "SYS_5307" }, /* 5307 */ + { 0, 0, printargs, "SYS_5308" }, /* 5308 */ + { 0, 0, printargs, "SYS_5309" }, /* 5309 */ + { 0, 0, printargs, "SYS_5310" }, /* 5310 */ + { 0, 0, printargs, "SYS_5311" }, /* 5311 */ + { 0, 0, printargs, "SYS_5312" }, /* 5312 */ + { 0, 0, printargs, "SYS_5313" }, /* 5313 */ + { 0, 0, printargs, "SYS_5314" }, /* 5314 */ + { 0, 0, printargs, "SYS_5315" }, /* 5315 */ + { 0, 0, printargs, "SYS_5316" }, /* 5316 */ + { 0, 0, printargs, "SYS_5317" }, /* 5317 */ + { 0, 0, printargs, "SYS_5318" }, /* 5318 */ + { 0, 0, printargs, "SYS_5319" }, /* 5319 */ + { 0, 0, printargs, "SYS_5320" }, /* 5320 */ + { 0, 0, printargs, "SYS_5321" }, /* 5321 */ + { 0, 0, printargs, "SYS_5322" }, /* 5322 */ + { 0, 0, printargs, "SYS_5323" }, /* 5323 */ + { 0, 0, printargs, "SYS_5324" }, /* 5324 */ + { 0, 0, printargs, "SYS_5325" }, /* 5325 */ + { 0, 0, printargs, "SYS_5326" }, /* 5326 */ + { 0, 0, printargs, "SYS_5327" }, /* 5327 */ + { 0, 0, printargs, "SYS_5328" }, /* 5328 */ + { 0, 0, printargs, "SYS_5329" }, /* 5329 */ + { 0, 0, printargs, "SYS_5330" }, /* 5330 */ + { 0, 0, printargs, "SYS_5331" }, /* 5331 */ + { 0, 0, printargs, "SYS_5332" }, /* 5332 */ + { 0, 0, printargs, "SYS_5333" }, /* 5333 */ + { 0, 0, printargs, "SYS_5334" }, /* 5334 */ + { 0, 0, printargs, "SYS_5335" }, /* 5335 */ + { 0, 0, printargs, "SYS_5336" }, /* 5336 */ + { 0, 0, printargs, "SYS_5337" }, /* 5337 */ + { 0, 0, printargs, "SYS_5338" }, /* 5338 */ + { 0, 0, printargs, "SYS_5339" }, /* 5339 */ + { 0, 0, printargs, "SYS_5340" }, /* 5340 */ + { 0, 0, printargs, "SYS_5341" }, /* 5341 */ + { 0, 0, printargs, "SYS_5342" }, /* 5342 */ + { 0, 0, printargs, "SYS_5343" }, /* 5343 */ + { 0, 0, printargs, "SYS_5344" }, /* 5344 */ + { 0, 0, printargs, "SYS_5345" }, /* 5345 */ + { 0, 0, printargs, "SYS_5346" }, /* 5346 */ + { 0, 0, printargs, "SYS_5347" }, /* 5347 */ + { 0, 0, printargs, "SYS_5348" }, /* 5348 */ + { 0, 0, printargs, "SYS_5349" }, /* 5349 */ + { 0, 0, printargs, "SYS_5350" }, /* 5350 */ + { 0, 0, printargs, "SYS_5351" }, /* 5351 */ + { 0, 0, printargs, "SYS_5352" }, /* 5352 */ + { 0, 0, printargs, "SYS_5353" }, /* 5353 */ + { 0, 0, printargs, "SYS_5354" }, /* 5354 */ + { 0, 0, printargs, "SYS_5355" }, /* 5355 */ + { 0, 0, printargs, "SYS_5356" }, /* 5356 */ + { 0, 0, printargs, "SYS_5357" }, /* 5357 */ + { 0, 0, printargs, "SYS_5358" }, /* 5358 */ + { 0, 0, printargs, "SYS_5359" }, /* 5359 */ + { 0, 0, printargs, "SYS_5360" }, /* 5360 */ + { 0, 0, printargs, "SYS_5361" }, /* 5361 */ + { 0, 0, printargs, "SYS_5362" }, /* 5362 */ + { 0, 0, printargs, "SYS_5363" }, /* 5363 */ + { 0, 0, printargs, "SYS_5364" }, /* 5364 */ + { 0, 0, printargs, "SYS_5365" }, /* 5365 */ + { 0, 0, printargs, "SYS_5366" }, /* 5366 */ + { 0, 0, printargs, "SYS_5367" }, /* 5367 */ + { 0, 0, printargs, "SYS_5368" }, /* 5368 */ + { 0, 0, printargs, "SYS_5369" }, /* 5369 */ + { 0, 0, printargs, "SYS_5370" }, /* 5370 */ + { 0, 0, printargs, "SYS_5371" }, /* 5371 */ + { 0, 0, printargs, "SYS_5372" }, /* 5372 */ + { 0, 0, printargs, "SYS_5373" }, /* 5373 */ + { 0, 0, printargs, "SYS_5374" }, /* 5374 */ + { 0, 0, printargs, "SYS_5375" }, /* 5375 */ + { 0, 0, printargs, "SYS_5376" }, /* 5376 */ + { 0, 0, printargs, "SYS_5377" }, /* 5377 */ + { 0, 0, printargs, "SYS_5378" }, /* 5378 */ + { 0, 0, printargs, "SYS_5379" }, /* 5379 */ + { 0, 0, printargs, "SYS_5380" }, /* 5380 */ + { 0, 0, printargs, "SYS_5381" }, /* 5381 */ + { 0, 0, printargs, "SYS_5382" }, /* 5382 */ + { 0, 0, printargs, "SYS_5383" }, /* 5383 */ + { 0, 0, printargs, "SYS_5384" }, /* 5384 */ + { 0, 0, printargs, "SYS_5385" }, /* 5385 */ + { 0, 0, printargs, "SYS_5386" }, /* 5386 */ + { 0, 0, printargs, "SYS_5387" }, /* 5387 */ + { 0, 0, printargs, "SYS_5388" }, /* 5388 */ + { 0, 0, printargs, "SYS_5389" }, /* 5389 */ + { 0, 0, printargs, "SYS_5390" }, /* 5390 */ + { 0, 0, printargs, "SYS_5391" }, /* 5391 */ + { 0, 0, printargs, "SYS_5392" }, /* 5392 */ + { 0, 0, printargs, "SYS_5393" }, /* 5393 */ + { 0, 0, printargs, "SYS_5394" }, /* 5394 */ + { 0, 0, printargs, "SYS_5395" }, /* 5395 */ + { 0, 0, printargs, "SYS_5396" }, /* 5396 */ + { 0, 0, printargs, "SYS_5397" }, /* 5397 */ + { 0, 0, printargs, "SYS_5398" }, /* 5398 */ + { 0, 0, printargs, "SYS_5399" }, /* 5399 */ + { 0, 0, printargs, "SYS_5400" }, /* 5400 */ + { 0, 0, printargs, "SYS_5401" }, /* 5401 */ + { 0, 0, printargs, "SYS_5402" }, /* 5402 */ + { 0, 0, printargs, "SYS_5403" }, /* 5403 */ + { 0, 0, printargs, "SYS_5404" }, /* 5404 */ + { 0, 0, printargs, "SYS_5405" }, /* 5405 */ + { 0, 0, printargs, "SYS_5406" }, /* 5406 */ + { 0, 0, printargs, "SYS_5407" }, /* 5407 */ + { 0, 0, printargs, "SYS_5408" }, /* 5408 */ + { 0, 0, printargs, "SYS_5409" }, /* 5409 */ + { 0, 0, printargs, "SYS_5410" }, /* 5410 */ + { 0, 0, printargs, "SYS_5411" }, /* 5411 */ + { 0, 0, printargs, "SYS_5412" }, /* 5412 */ + { 0, 0, printargs, "SYS_5413" }, /* 5413 */ + { 0, 0, printargs, "SYS_5414" }, /* 5414 */ + { 0, 0, printargs, "SYS_5415" }, /* 5415 */ + { 0, 0, printargs, "SYS_5416" }, /* 5416 */ + { 0, 0, printargs, "SYS_5417" }, /* 5417 */ + { 0, 0, printargs, "SYS_5418" }, /* 5418 */ + { 0, 0, printargs, "SYS_5419" }, /* 5419 */ + { 0, 0, printargs, "SYS_5420" }, /* 5420 */ + { 0, 0, printargs, "SYS_5421" }, /* 5421 */ + { 0, 0, printargs, "SYS_5422" }, /* 5422 */ + { 0, 0, printargs, "SYS_5423" }, /* 5423 */ + { 0, 0, printargs, "SYS_5424" }, /* 5424 */ + { 0, 0, printargs, "SYS_5425" }, /* 5425 */ + { 0, 0, printargs, "SYS_5426" }, /* 5426 */ + { 0, 0, printargs, "SYS_5427" }, /* 5427 */ + { 0, 0, printargs, "SYS_5428" }, /* 5428 */ + { 0, 0, printargs, "SYS_5429" }, /* 5429 */ + { 0, 0, printargs, "SYS_5430" }, /* 5430 */ + { 0, 0, printargs, "SYS_5431" }, /* 5431 */ + { 0, 0, printargs, "SYS_5432" }, /* 5432 */ + { 0, 0, printargs, "SYS_5433" }, /* 5433 */ + { 0, 0, printargs, "SYS_5434" }, /* 5434 */ + { 0, 0, printargs, "SYS_5435" }, /* 5435 */ + { 0, 0, printargs, "SYS_5436" }, /* 5436 */ + { 0, 0, printargs, "SYS_5437" }, /* 5437 */ + { 0, 0, printargs, "SYS_5438" }, /* 5438 */ + { 0, 0, printargs, "SYS_5439" }, /* 5439 */ + { 0, 0, printargs, "SYS_5440" }, /* 5440 */ + { 0, 0, printargs, "SYS_5441" }, /* 5441 */ + { 0, 0, printargs, "SYS_5442" }, /* 5442 */ + { 0, 0, printargs, "SYS_5443" }, /* 5443 */ + { 0, 0, printargs, "SYS_5444" }, /* 5444 */ + { 0, 0, printargs, "SYS_5445" }, /* 5445 */ + { 0, 0, printargs, "SYS_5446" }, /* 5446 */ + { 0, 0, printargs, "SYS_5447" }, /* 5447 */ + { 0, 0, printargs, "SYS_5448" }, /* 5448 */ + { 0, 0, printargs, "SYS_5449" }, /* 5449 */ + { 0, 0, printargs, "SYS_5450" }, /* 5450 */ + { 0, 0, printargs, "SYS_5451" }, /* 5451 */ + { 0, 0, printargs, "SYS_5452" }, /* 5452 */ + { 0, 0, printargs, "SYS_5453" }, /* 5453 */ + { 0, 0, printargs, "SYS_5454" }, /* 5454 */ + { 0, 0, printargs, "SYS_5455" }, /* 5455 */ + { 0, 0, printargs, "SYS_5456" }, /* 5456 */ + { 0, 0, printargs, "SYS_5457" }, /* 5457 */ + { 0, 0, printargs, "SYS_5458" }, /* 5458 */ + { 0, 0, printargs, "SYS_5459" }, /* 5459 */ + { 0, 0, printargs, "SYS_5460" }, /* 5460 */ + { 0, 0, printargs, "SYS_5461" }, /* 5461 */ + { 0, 0, printargs, "SYS_5462" }, /* 5462 */ + { 0, 0, printargs, "SYS_5463" }, /* 5463 */ + { 0, 0, printargs, "SYS_5464" }, /* 5464 */ + { 0, 0, printargs, "SYS_5465" }, /* 5465 */ + { 0, 0, printargs, "SYS_5466" }, /* 5466 */ + { 0, 0, printargs, "SYS_5467" }, /* 5467 */ + { 0, 0, printargs, "SYS_5468" }, /* 5468 */ + { 0, 0, printargs, "SYS_5469" }, /* 5469 */ + { 0, 0, printargs, "SYS_5470" }, /* 5470 */ + { 0, 0, printargs, "SYS_5471" }, /* 5471 */ + { 0, 0, printargs, "SYS_5472" }, /* 5472 */ + { 0, 0, printargs, "SYS_5473" }, /* 5473 */ + { 0, 0, printargs, "SYS_5474" }, /* 5474 */ + { 0, 0, printargs, "SYS_5475" }, /* 5475 */ + { 0, 0, printargs, "SYS_5476" }, /* 5476 */ + { 0, 0, printargs, "SYS_5477" }, /* 5477 */ + { 0, 0, printargs, "SYS_5478" }, /* 5478 */ + { 0, 0, printargs, "SYS_5479" }, /* 5479 */ + { 0, 0, printargs, "SYS_5480" }, /* 5480 */ + { 0, 0, printargs, "SYS_5481" }, /* 5481 */ + { 0, 0, printargs, "SYS_5482" }, /* 5482 */ + { 0, 0, printargs, "SYS_5483" }, /* 5483 */ + { 0, 0, printargs, "SYS_5484" }, /* 5484 */ + { 0, 0, printargs, "SYS_5485" }, /* 5485 */ + { 0, 0, printargs, "SYS_5486" }, /* 5486 */ + { 0, 0, printargs, "SYS_5487" }, /* 5487 */ + { 0, 0, printargs, "SYS_5488" }, /* 5488 */ + { 0, 0, printargs, "SYS_5489" }, /* 5489 */ + { 0, 0, printargs, "SYS_5490" }, /* 5490 */ + { 0, 0, printargs, "SYS_5491" }, /* 5491 */ + { 0, 0, printargs, "SYS_5492" }, /* 5492 */ + { 0, 0, printargs, "SYS_5493" }, /* 5493 */ + { 0, 0, printargs, "SYS_5494" }, /* 5494 */ + { 0, 0, printargs, "SYS_5495" }, /* 5495 */ + { 0, 0, printargs, "SYS_5496" }, /* 5496 */ + { 0, 0, printargs, "SYS_5497" }, /* 5497 */ + { 0, 0, printargs, "SYS_5498" }, /* 5498 */ + { 0, 0, printargs, "SYS_5499" }, /* 5499 */ + { 0, 0, printargs, "SYS_5500" }, /* 5500 */ + { 0, 0, printargs, "SYS_5501" }, /* 5501 */ + { 0, 0, printargs, "SYS_5502" }, /* 5502 */ + { 0, 0, printargs, "SYS_5503" }, /* 5503 */ + { 0, 0, printargs, "SYS_5504" }, /* 5504 */ + { 0, 0, printargs, "SYS_5505" }, /* 5505 */ + { 0, 0, printargs, "SYS_5506" }, /* 5506 */ + { 0, 0, printargs, "SYS_5507" }, /* 5507 */ + { 0, 0, printargs, "SYS_5508" }, /* 5508 */ + { 0, 0, printargs, "SYS_5509" }, /* 5509 */ + { 0, 0, printargs, "SYS_5510" }, /* 5510 */ + { 0, 0, printargs, "SYS_5511" }, /* 5511 */ + { 0, 0, printargs, "SYS_5512" }, /* 5512 */ + { 0, 0, printargs, "SYS_5513" }, /* 5513 */ + { 0, 0, printargs, "SYS_5514" }, /* 5514 */ + { 0, 0, printargs, "SYS_5515" }, /* 5515 */ + { 0, 0, printargs, "SYS_5516" }, /* 5516 */ + { 0, 0, printargs, "SYS_5517" }, /* 5517 */ + { 0, 0, printargs, "SYS_5518" }, /* 5518 */ + { 0, 0, printargs, "SYS_5519" }, /* 5519 */ + { 0, 0, printargs, "SYS_5520" }, /* 5520 */ + { 0, 0, printargs, "SYS_5521" }, /* 5521 */ + { 0, 0, printargs, "SYS_5522" }, /* 5522 */ + { 0, 0, printargs, "SYS_5523" }, /* 5523 */ + { 0, 0, printargs, "SYS_5524" }, /* 5524 */ + { 0, 0, printargs, "SYS_5525" }, /* 5525 */ + { 0, 0, printargs, "SYS_5526" }, /* 5526 */ + { 0, 0, printargs, "SYS_5527" }, /* 5527 */ + { 0, 0, printargs, "SYS_5528" }, /* 5528 */ + { 0, 0, printargs, "SYS_5529" }, /* 5529 */ + { 0, 0, printargs, "SYS_5530" }, /* 5530 */ + { 0, 0, printargs, "SYS_5531" }, /* 5531 */ + { 0, 0, printargs, "SYS_5532" }, /* 5532 */ + { 0, 0, printargs, "SYS_5533" }, /* 5533 */ + { 0, 0, printargs, "SYS_5534" }, /* 5534 */ + { 0, 0, printargs, "SYS_5535" }, /* 5535 */ + { 0, 0, printargs, "SYS_5536" }, /* 5536 */ + { 0, 0, printargs, "SYS_5537" }, /* 5537 */ + { 0, 0, printargs, "SYS_5538" }, /* 5538 */ + { 0, 0, printargs, "SYS_5539" }, /* 5539 */ + { 0, 0, printargs, "SYS_5540" }, /* 5540 */ + { 0, 0, printargs, "SYS_5541" }, /* 5541 */ + { 0, 0, printargs, "SYS_5542" }, /* 5542 */ + { 0, 0, printargs, "SYS_5543" }, /* 5543 */ + { 0, 0, printargs, "SYS_5544" }, /* 5544 */ + { 0, 0, printargs, "SYS_5545" }, /* 5545 */ + { 0, 0, printargs, "SYS_5546" }, /* 5546 */ + { 0, 0, printargs, "SYS_5547" }, /* 5547 */ + { 0, 0, printargs, "SYS_5548" }, /* 5548 */ + { 0, 0, printargs, "SYS_5549" }, /* 5549 */ + { 0, 0, printargs, "SYS_5550" }, /* 5550 */ + { 0, 0, printargs, "SYS_5551" }, /* 5551 */ + { 0, 0, printargs, "SYS_5552" }, /* 5552 */ + { 0, 0, printargs, "SYS_5553" }, /* 5553 */ + { 0, 0, printargs, "SYS_5554" }, /* 5554 */ + { 0, 0, printargs, "SYS_5555" }, /* 5555 */ + { 0, 0, printargs, "SYS_5556" }, /* 5556 */ + { 0, 0, printargs, "SYS_5557" }, /* 5557 */ + { 0, 0, printargs, "SYS_5558" }, /* 5558 */ + { 0, 0, printargs, "SYS_5559" }, /* 5559 */ + { 0, 0, printargs, "SYS_5560" }, /* 5560 */ + { 0, 0, printargs, "SYS_5561" }, /* 5561 */ + { 0, 0, printargs, "SYS_5562" }, /* 5562 */ + { 0, 0, printargs, "SYS_5563" }, /* 5563 */ + { 0, 0, printargs, "SYS_5564" }, /* 5564 */ + { 0, 0, printargs, "SYS_5565" }, /* 5565 */ + { 0, 0, printargs, "SYS_5566" }, /* 5566 */ + { 0, 0, printargs, "SYS_5567" }, /* 5567 */ + { 0, 0, printargs, "SYS_5568" }, /* 5568 */ + { 0, 0, printargs, "SYS_5569" }, /* 5569 */ + { 0, 0, printargs, "SYS_5570" }, /* 5570 */ + { 0, 0, printargs, "SYS_5571" }, /* 5571 */ + { 0, 0, printargs, "SYS_5572" }, /* 5572 */ + { 0, 0, printargs, "SYS_5573" }, /* 5573 */ + { 0, 0, printargs, "SYS_5574" }, /* 5574 */ + { 0, 0, printargs, "SYS_5575" }, /* 5575 */ + { 0, 0, printargs, "SYS_5576" }, /* 5576 */ + { 0, 0, printargs, "SYS_5577" }, /* 5577 */ + { 0, 0, printargs, "SYS_5578" }, /* 5578 */ + { 0, 0, printargs, "SYS_5579" }, /* 5579 */ + { 0, 0, printargs, "SYS_5580" }, /* 5580 */ + { 0, 0, printargs, "SYS_5581" }, /* 5581 */ + { 0, 0, printargs, "SYS_5582" }, /* 5582 */ + { 0, 0, printargs, "SYS_5583" }, /* 5583 */ + { 0, 0, printargs, "SYS_5584" }, /* 5584 */ + { 0, 0, printargs, "SYS_5585" }, /* 5585 */ + { 0, 0, printargs, "SYS_5586" }, /* 5586 */ + { 0, 0, printargs, "SYS_5587" }, /* 5587 */ + { 0, 0, printargs, "SYS_5588" }, /* 5588 */ + { 0, 0, printargs, "SYS_5589" }, /* 5589 */ + { 0, 0, printargs, "SYS_5590" }, /* 5590 */ + { 0, 0, printargs, "SYS_5591" }, /* 5591 */ + { 0, 0, printargs, "SYS_5592" }, /* 5592 */ + { 0, 0, printargs, "SYS_5593" }, /* 5593 */ + { 0, 0, printargs, "SYS_5594" }, /* 5594 */ + { 0, 0, printargs, "SYS_5595" }, /* 5595 */ + { 0, 0, printargs, "SYS_5596" }, /* 5596 */ + { 0, 0, printargs, "SYS_5597" }, /* 5597 */ + { 0, 0, printargs, "SYS_5598" }, /* 5598 */ + { 0, 0, printargs, "SYS_5599" }, /* 5599 */ + { 0, 0, printargs, "SYS_5600" }, /* 5600 */ + { 0, 0, printargs, "SYS_5601" }, /* 5601 */ + { 0, 0, printargs, "SYS_5602" }, /* 5602 */ + { 0, 0, printargs, "SYS_5603" }, /* 5603 */ + { 0, 0, printargs, "SYS_5604" }, /* 5604 */ + { 0, 0, printargs, "SYS_5605" }, /* 5605 */ + { 0, 0, printargs, "SYS_5606" }, /* 5606 */ + { 0, 0, printargs, "SYS_5607" }, /* 5607 */ + { 0, 0, printargs, "SYS_5608" }, /* 5608 */ + { 0, 0, printargs, "SYS_5609" }, /* 5609 */ + { 0, 0, printargs, "SYS_5610" }, /* 5610 */ + { 0, 0, printargs, "SYS_5611" }, /* 5611 */ + { 0, 0, printargs, "SYS_5612" }, /* 5612 */ + { 0, 0, printargs, "SYS_5613" }, /* 5613 */ + { 0, 0, printargs, "SYS_5614" }, /* 5614 */ + { 0, 0, printargs, "SYS_5615" }, /* 5615 */ + { 0, 0, printargs, "SYS_5616" }, /* 5616 */ + { 0, 0, printargs, "SYS_5617" }, /* 5617 */ + { 0, 0, printargs, "SYS_5618" }, /* 5618 */ + { 0, 0, printargs, "SYS_5619" }, /* 5619 */ + { 0, 0, printargs, "SYS_5620" }, /* 5620 */ + { 0, 0, printargs, "SYS_5621" }, /* 5621 */ + { 0, 0, printargs, "SYS_5622" }, /* 5622 */ + { 0, 0, printargs, "SYS_5623" }, /* 5623 */ + { 0, 0, printargs, "SYS_5624" }, /* 5624 */ + { 0, 0, printargs, "SYS_5625" }, /* 5625 */ + { 0, 0, printargs, "SYS_5626" }, /* 5626 */ + { 0, 0, printargs, "SYS_5627" }, /* 5627 */ + { 0, 0, printargs, "SYS_5628" }, /* 5628 */ + { 0, 0, printargs, "SYS_5629" }, /* 5629 */ + { 0, 0, printargs, "SYS_5630" }, /* 5630 */ + { 0, 0, printargs, "SYS_5631" }, /* 5631 */ + { 0, 0, printargs, "SYS_5632" }, /* 5632 */ + { 0, 0, printargs, "SYS_5633" }, /* 5633 */ + { 0, 0, printargs, "SYS_5634" }, /* 5634 */ + { 0, 0, printargs, "SYS_5635" }, /* 5635 */ + { 0, 0, printargs, "SYS_5636" }, /* 5636 */ + { 0, 0, printargs, "SYS_5637" }, /* 5637 */ + { 0, 0, printargs, "SYS_5638" }, /* 5638 */ + { 0, 0, printargs, "SYS_5639" }, /* 5639 */ + { 0, 0, printargs, "SYS_5640" }, /* 5640 */ + { 0, 0, printargs, "SYS_5641" }, /* 5641 */ + { 0, 0, printargs, "SYS_5642" }, /* 5642 */ + { 0, 0, printargs, "SYS_5643" }, /* 5643 */ + { 0, 0, printargs, "SYS_5644" }, /* 5644 */ + { 0, 0, printargs, "SYS_5645" }, /* 5645 */ + { 0, 0, printargs, "SYS_5646" }, /* 5646 */ + { 0, 0, printargs, "SYS_5647" }, /* 5647 */ + { 0, 0, printargs, "SYS_5648" }, /* 5648 */ + { 0, 0, printargs, "SYS_5649" }, /* 5649 */ + { 0, 0, printargs, "SYS_5650" }, /* 5650 */ + { 0, 0, printargs, "SYS_5651" }, /* 5651 */ + { 0, 0, printargs, "SYS_5652" }, /* 5652 */ + { 0, 0, printargs, "SYS_5653" }, /* 5653 */ + { 0, 0, printargs, "SYS_5654" }, /* 5654 */ + { 0, 0, printargs, "SYS_5655" }, /* 5655 */ + { 0, 0, printargs, "SYS_5656" }, /* 5656 */ + { 0, 0, printargs, "SYS_5657" }, /* 5657 */ + { 0, 0, printargs, "SYS_5658" }, /* 5658 */ + { 0, 0, printargs, "SYS_5659" }, /* 5659 */ + { 0, 0, printargs, "SYS_5660" }, /* 5660 */ + { 0, 0, printargs, "SYS_5661" }, /* 5661 */ + { 0, 0, printargs, "SYS_5662" }, /* 5662 */ + { 0, 0, printargs, "SYS_5663" }, /* 5663 */ + { 0, 0, printargs, "SYS_5664" }, /* 5664 */ + { 0, 0, printargs, "SYS_5665" }, /* 5665 */ + { 0, 0, printargs, "SYS_5666" }, /* 5666 */ + { 0, 0, printargs, "SYS_5667" }, /* 5667 */ + { 0, 0, printargs, "SYS_5668" }, /* 5668 */ + { 0, 0, printargs, "SYS_5669" }, /* 5669 */ + { 0, 0, printargs, "SYS_5670" }, /* 5670 */ + { 0, 0, printargs, "SYS_5671" }, /* 5671 */ + { 0, 0, printargs, "SYS_5672" }, /* 5672 */ + { 0, 0, printargs, "SYS_5673" }, /* 5673 */ + { 0, 0, printargs, "SYS_5674" }, /* 5674 */ + { 0, 0, printargs, "SYS_5675" }, /* 5675 */ + { 0, 0, printargs, "SYS_5676" }, /* 5676 */ + { 0, 0, printargs, "SYS_5677" }, /* 5677 */ + { 0, 0, printargs, "SYS_5678" }, /* 5678 */ + { 0, 0, printargs, "SYS_5679" }, /* 5679 */ + { 0, 0, printargs, "SYS_5680" }, /* 5680 */ + { 0, 0, printargs, "SYS_5681" }, /* 5681 */ + { 0, 0, printargs, "SYS_5682" }, /* 5682 */ + { 0, 0, printargs, "SYS_5683" }, /* 5683 */ + { 0, 0, printargs, "SYS_5684" }, /* 5684 */ + { 0, 0, printargs, "SYS_5685" }, /* 5685 */ + { 0, 0, printargs, "SYS_5686" }, /* 5686 */ + { 0, 0, printargs, "SYS_5687" }, /* 5687 */ + { 0, 0, printargs, "SYS_5688" }, /* 5688 */ + { 0, 0, printargs, "SYS_5689" }, /* 5689 */ + { 0, 0, printargs, "SYS_5690" }, /* 5690 */ + { 0, 0, printargs, "SYS_5691" }, /* 5691 */ + { 0, 0, printargs, "SYS_5692" }, /* 5692 */ + { 0, 0, printargs, "SYS_5693" }, /* 5693 */ + { 0, 0, printargs, "SYS_5694" }, /* 5694 */ + { 0, 0, printargs, "SYS_5695" }, /* 5695 */ + { 0, 0, printargs, "SYS_5696" }, /* 5696 */ + { 0, 0, printargs, "SYS_5697" }, /* 5697 */ + { 0, 0, printargs, "SYS_5698" }, /* 5698 */ + { 0, 0, printargs, "SYS_5699" }, /* 5699 */ + { 0, 0, printargs, "SYS_5700" }, /* 5700 */ + { 0, 0, printargs, "SYS_5701" }, /* 5701 */ + { 0, 0, printargs, "SYS_5702" }, /* 5702 */ + { 0, 0, printargs, "SYS_5703" }, /* 5703 */ + { 0, 0, printargs, "SYS_5704" }, /* 5704 */ + { 0, 0, printargs, "SYS_5705" }, /* 5705 */ + { 0, 0, printargs, "SYS_5706" }, /* 5706 */ + { 0, 0, printargs, "SYS_5707" }, /* 5707 */ + { 0, 0, printargs, "SYS_5708" }, /* 5708 */ + { 0, 0, printargs, "SYS_5709" }, /* 5709 */ + { 0, 0, printargs, "SYS_5710" }, /* 5710 */ + { 0, 0, printargs, "SYS_5711" }, /* 5711 */ + { 0, 0, printargs, "SYS_5712" }, /* 5712 */ + { 0, 0, printargs, "SYS_5713" }, /* 5713 */ + { 0, 0, printargs, "SYS_5714" }, /* 5714 */ + { 0, 0, printargs, "SYS_5715" }, /* 5715 */ + { 0, 0, printargs, "SYS_5716" }, /* 5716 */ + { 0, 0, printargs, "SYS_5717" }, /* 5717 */ + { 0, 0, printargs, "SYS_5718" }, /* 5718 */ + { 0, 0, printargs, "SYS_5719" }, /* 5719 */ + { 0, 0, printargs, "SYS_5720" }, /* 5720 */ + { 0, 0, printargs, "SYS_5721" }, /* 5721 */ + { 0, 0, printargs, "SYS_5722" }, /* 5722 */ + { 0, 0, printargs, "SYS_5723" }, /* 5723 */ + { 0, 0, printargs, "SYS_5724" }, /* 5724 */ + { 0, 0, printargs, "SYS_5725" }, /* 5725 */ + { 0, 0, printargs, "SYS_5726" }, /* 5726 */ + { 0, 0, printargs, "SYS_5727" }, /* 5727 */ + { 0, 0, printargs, "SYS_5728" }, /* 5728 */ + { 0, 0, printargs, "SYS_5729" }, /* 5729 */ + { 0, 0, printargs, "SYS_5730" }, /* 5730 */ + { 0, 0, printargs, "SYS_5731" }, /* 5731 */ + { 0, 0, printargs, "SYS_5732" }, /* 5732 */ + { 0, 0, printargs, "SYS_5733" }, /* 5733 */ + { 0, 0, printargs, "SYS_5734" }, /* 5734 */ + { 0, 0, printargs, "SYS_5735" }, /* 5735 */ + { 0, 0, printargs, "SYS_5736" }, /* 5736 */ + { 0, 0, printargs, "SYS_5737" }, /* 5737 */ + { 0, 0, printargs, "SYS_5738" }, /* 5738 */ + { 0, 0, printargs, "SYS_5739" }, /* 5739 */ + { 0, 0, printargs, "SYS_5740" }, /* 5740 */ + { 0, 0, printargs, "SYS_5741" }, /* 5741 */ + { 0, 0, printargs, "SYS_5742" }, /* 5742 */ + { 0, 0, printargs, "SYS_5743" }, /* 5743 */ + { 0, 0, printargs, "SYS_5744" }, /* 5744 */ + { 0, 0, printargs, "SYS_5745" }, /* 5745 */ + { 0, 0, printargs, "SYS_5746" }, /* 5746 */ + { 0, 0, printargs, "SYS_5747" }, /* 5747 */ + { 0, 0, printargs, "SYS_5748" }, /* 5748 */ + { 0, 0, printargs, "SYS_5749" }, /* 5749 */ + { 0, 0, printargs, "SYS_5750" }, /* 5750 */ + { 0, 0, printargs, "SYS_5751" }, /* 5751 */ + { 0, 0, printargs, "SYS_5752" }, /* 5752 */ + { 0, 0, printargs, "SYS_5753" }, /* 5753 */ + { 0, 0, printargs, "SYS_5754" }, /* 5754 */ + { 0, 0, printargs, "SYS_5755" }, /* 5755 */ + { 0, 0, printargs, "SYS_5756" }, /* 5756 */ + { 0, 0, printargs, "SYS_5757" }, /* 5757 */ + { 0, 0, printargs, "SYS_5758" }, /* 5758 */ + { 0, 0, printargs, "SYS_5759" }, /* 5759 */ + { 0, 0, printargs, "SYS_5760" }, /* 5760 */ + { 0, 0, printargs, "SYS_5761" }, /* 5761 */ + { 0, 0, printargs, "SYS_5762" }, /* 5762 */ + { 0, 0, printargs, "SYS_5763" }, /* 5763 */ + { 0, 0, printargs, "SYS_5764" }, /* 5764 */ + { 0, 0, printargs, "SYS_5765" }, /* 5765 */ + { 0, 0, printargs, "SYS_5766" }, /* 5766 */ + { 0, 0, printargs, "SYS_5767" }, /* 5767 */ + { 0, 0, printargs, "SYS_5768" }, /* 5768 */ + { 0, 0, printargs, "SYS_5769" }, /* 5769 */ + { 0, 0, printargs, "SYS_5770" }, /* 5770 */ + { 0, 0, printargs, "SYS_5771" }, /* 5771 */ + { 0, 0, printargs, "SYS_5772" }, /* 5772 */ + { 0, 0, printargs, "SYS_5773" }, /* 5773 */ + { 0, 0, printargs, "SYS_5774" }, /* 5774 */ + { 0, 0, printargs, "SYS_5775" }, /* 5775 */ + { 0, 0, printargs, "SYS_5776" }, /* 5776 */ + { 0, 0, printargs, "SYS_5777" }, /* 5777 */ + { 0, 0, printargs, "SYS_5778" }, /* 5778 */ + { 0, 0, printargs, "SYS_5779" }, /* 5779 */ + { 0, 0, printargs, "SYS_5780" }, /* 5780 */ + { 0, 0, printargs, "SYS_5781" }, /* 5781 */ + { 0, 0, printargs, "SYS_5782" }, /* 5782 */ + { 0, 0, printargs, "SYS_5783" }, /* 5783 */ + { 0, 0, printargs, "SYS_5784" }, /* 5784 */ + { 0, 0, printargs, "SYS_5785" }, /* 5785 */ + { 0, 0, printargs, "SYS_5786" }, /* 5786 */ + { 0, 0, printargs, "SYS_5787" }, /* 5787 */ + { 0, 0, printargs, "SYS_5788" }, /* 5788 */ + { 0, 0, printargs, "SYS_5789" }, /* 5789 */ + { 0, 0, printargs, "SYS_5790" }, /* 5790 */ + { 0, 0, printargs, "SYS_5791" }, /* 5791 */ + { 0, 0, printargs, "SYS_5792" }, /* 5792 */ + { 0, 0, printargs, "SYS_5793" }, /* 5793 */ + { 0, 0, printargs, "SYS_5794" }, /* 5794 */ + { 0, 0, printargs, "SYS_5795" }, /* 5795 */ + { 0, 0, printargs, "SYS_5796" }, /* 5796 */ + { 0, 0, printargs, "SYS_5797" }, /* 5797 */ + { 0, 0, printargs, "SYS_5798" }, /* 5798 */ + { 0, 0, printargs, "SYS_5799" }, /* 5799 */ + { 0, 0, printargs, "SYS_5800" }, /* 5800 */ + { 0, 0, printargs, "SYS_5801" }, /* 5801 */ + { 0, 0, printargs, "SYS_5802" }, /* 5802 */ + { 0, 0, printargs, "SYS_5803" }, /* 5803 */ + { 0, 0, printargs, "SYS_5804" }, /* 5804 */ + { 0, 0, printargs, "SYS_5805" }, /* 5805 */ + { 0, 0, printargs, "SYS_5806" }, /* 5806 */ + { 0, 0, printargs, "SYS_5807" }, /* 5807 */ + { 0, 0, printargs, "SYS_5808" }, /* 5808 */ + { 0, 0, printargs, "SYS_5809" }, /* 5809 */ + { 0, 0, printargs, "SYS_5810" }, /* 5810 */ + { 0, 0, printargs, "SYS_5811" }, /* 5811 */ + { 0, 0, printargs, "SYS_5812" }, /* 5812 */ + { 0, 0, printargs, "SYS_5813" }, /* 5813 */ + { 0, 0, printargs, "SYS_5814" }, /* 5814 */ + { 0, 0, printargs, "SYS_5815" }, /* 5815 */ + { 0, 0, printargs, "SYS_5816" }, /* 5816 */ + { 0, 0, printargs, "SYS_5817" }, /* 5817 */ + { 0, 0, printargs, "SYS_5818" }, /* 5818 */ + { 0, 0, printargs, "SYS_5819" }, /* 5819 */ + { 0, 0, printargs, "SYS_5820" }, /* 5820 */ + { 0, 0, printargs, "SYS_5821" }, /* 5821 */ + { 0, 0, printargs, "SYS_5822" }, /* 5822 */ + { 0, 0, printargs, "SYS_5823" }, /* 5823 */ + { 0, 0, printargs, "SYS_5824" }, /* 5824 */ + { 0, 0, printargs, "SYS_5825" }, /* 5825 */ + { 0, 0, printargs, "SYS_5826" }, /* 5826 */ + { 0, 0, printargs, "SYS_5827" }, /* 5827 */ + { 0, 0, printargs, "SYS_5828" }, /* 5828 */ + { 0, 0, printargs, "SYS_5829" }, /* 5829 */ + { 0, 0, printargs, "SYS_5830" }, /* 5830 */ + { 0, 0, printargs, "SYS_5831" }, /* 5831 */ + { 0, 0, printargs, "SYS_5832" }, /* 5832 */ + { 0, 0, printargs, "SYS_5833" }, /* 5833 */ + { 0, 0, printargs, "SYS_5834" }, /* 5834 */ + { 0, 0, printargs, "SYS_5835" }, /* 5835 */ + { 0, 0, printargs, "SYS_5836" }, /* 5836 */ + { 0, 0, printargs, "SYS_5837" }, /* 5837 */ + { 0, 0, printargs, "SYS_5838" }, /* 5838 */ + { 0, 0, printargs, "SYS_5839" }, /* 5839 */ + { 0, 0, printargs, "SYS_5840" }, /* 5840 */ + { 0, 0, printargs, "SYS_5841" }, /* 5841 */ + { 0, 0, printargs, "SYS_5842" }, /* 5842 */ + { 0, 0, printargs, "SYS_5843" }, /* 5843 */ + { 0, 0, printargs, "SYS_5844" }, /* 5844 */ + { 0, 0, printargs, "SYS_5845" }, /* 5845 */ + { 0, 0, printargs, "SYS_5846" }, /* 5846 */ + { 0, 0, printargs, "SYS_5847" }, /* 5847 */ + { 0, 0, printargs, "SYS_5848" }, /* 5848 */ + { 0, 0, printargs, "SYS_5849" }, /* 5849 */ + { 0, 0, printargs, "SYS_5850" }, /* 5850 */ + { 0, 0, printargs, "SYS_5851" }, /* 5851 */ + { 0, 0, printargs, "SYS_5852" }, /* 5852 */ + { 0, 0, printargs, "SYS_5853" }, /* 5853 */ + { 0, 0, printargs, "SYS_5854" }, /* 5854 */ + { 0, 0, printargs, "SYS_5855" }, /* 5855 */ + { 0, 0, printargs, "SYS_5856" }, /* 5856 */ + { 0, 0, printargs, "SYS_5857" }, /* 5857 */ + { 0, 0, printargs, "SYS_5858" }, /* 5858 */ + { 0, 0, printargs, "SYS_5859" }, /* 5859 */ + { 0, 0, printargs, "SYS_5860" }, /* 5860 */ + { 0, 0, printargs, "SYS_5861" }, /* 5861 */ + { 0, 0, printargs, "SYS_5862" }, /* 5862 */ + { 0, 0, printargs, "SYS_5863" }, /* 5863 */ + { 0, 0, printargs, "SYS_5864" }, /* 5864 */ + { 0, 0, printargs, "SYS_5865" }, /* 5865 */ + { 0, 0, printargs, "SYS_5866" }, /* 5866 */ + { 0, 0, printargs, "SYS_5867" }, /* 5867 */ + { 0, 0, printargs, "SYS_5868" }, /* 5868 */ + { 0, 0, printargs, "SYS_5869" }, /* 5869 */ + { 0, 0, printargs, "SYS_5870" }, /* 5870 */ + { 0, 0, printargs, "SYS_5871" }, /* 5871 */ + { 0, 0, printargs, "SYS_5872" }, /* 5872 */ + { 0, 0, printargs, "SYS_5873" }, /* 5873 */ + { 0, 0, printargs, "SYS_5874" }, /* 5874 */ + { 0, 0, printargs, "SYS_5875" }, /* 5875 */ + { 0, 0, printargs, "SYS_5876" }, /* 5876 */ + { 0, 0, printargs, "SYS_5877" }, /* 5877 */ + { 0, 0, printargs, "SYS_5878" }, /* 5878 */ + { 0, 0, printargs, "SYS_5879" }, /* 5879 */ + { 0, 0, printargs, "SYS_5880" }, /* 5880 */ + { 0, 0, printargs, "SYS_5881" }, /* 5881 */ + { 0, 0, printargs, "SYS_5882" }, /* 5882 */ + { 0, 0, printargs, "SYS_5883" }, /* 5883 */ + { 0, 0, printargs, "SYS_5884" }, /* 5884 */ + { 0, 0, printargs, "SYS_5885" }, /* 5885 */ + { 0, 0, printargs, "SYS_5886" }, /* 5886 */ + { 0, 0, printargs, "SYS_5887" }, /* 5887 */ + { 0, 0, printargs, "SYS_5888" }, /* 5888 */ + { 0, 0, printargs, "SYS_5889" }, /* 5889 */ + { 0, 0, printargs, "SYS_5890" }, /* 5890 */ + { 0, 0, printargs, "SYS_5891" }, /* 5891 */ + { 0, 0, printargs, "SYS_5892" }, /* 5892 */ + { 0, 0, printargs, "SYS_5893" }, /* 5893 */ + { 0, 0, printargs, "SYS_5894" }, /* 5894 */ + { 0, 0, printargs, "SYS_5895" }, /* 5895 */ + { 0, 0, printargs, "SYS_5896" }, /* 5896 */ + { 0, 0, printargs, "SYS_5897" }, /* 5897 */ + { 0, 0, printargs, "SYS_5898" }, /* 5898 */ + { 0, 0, printargs, "SYS_5899" }, /* 5899 */ + { 0, 0, printargs, "SYS_5900" }, /* 5900 */ + { 0, 0, printargs, "SYS_5901" }, /* 5901 */ + { 0, 0, printargs, "SYS_5902" }, /* 5902 */ + { 0, 0, printargs, "SYS_5903" }, /* 5903 */ + { 0, 0, printargs, "SYS_5904" }, /* 5904 */ + { 0, 0, printargs, "SYS_5905" }, /* 5905 */ + { 0, 0, printargs, "SYS_5906" }, /* 5906 */ + { 0, 0, printargs, "SYS_5907" }, /* 5907 */ + { 0, 0, printargs, "SYS_5908" }, /* 5908 */ + { 0, 0, printargs, "SYS_5909" }, /* 5909 */ + { 0, 0, printargs, "SYS_5910" }, /* 5910 */ + { 0, 0, printargs, "SYS_5911" }, /* 5911 */ + { 0, 0, printargs, "SYS_5912" }, /* 5912 */ + { 0, 0, printargs, "SYS_5913" }, /* 5913 */ + { 0, 0, printargs, "SYS_5914" }, /* 5914 */ + { 0, 0, printargs, "SYS_5915" }, /* 5915 */ + { 0, 0, printargs, "SYS_5916" }, /* 5916 */ + { 0, 0, printargs, "SYS_5917" }, /* 5917 */ + { 0, 0, printargs, "SYS_5918" }, /* 5918 */ + { 0, 0, printargs, "SYS_5919" }, /* 5919 */ + { 0, 0, printargs, "SYS_5920" }, /* 5920 */ + { 0, 0, printargs, "SYS_5921" }, /* 5921 */ + { 0, 0, printargs, "SYS_5922" }, /* 5922 */ + { 0, 0, printargs, "SYS_5923" }, /* 5923 */ + { 0, 0, printargs, "SYS_5924" }, /* 5924 */ + { 0, 0, printargs, "SYS_5925" }, /* 5925 */ + { 0, 0, printargs, "SYS_5926" }, /* 5926 */ + { 0, 0, printargs, "SYS_5927" }, /* 5927 */ + { 0, 0, printargs, "SYS_5928" }, /* 5928 */ + { 0, 0, printargs, "SYS_5929" }, /* 5929 */ + { 0, 0, printargs, "SYS_5930" }, /* 5930 */ + { 0, 0, printargs, "SYS_5931" }, /* 5931 */ + { 0, 0, printargs, "SYS_5932" }, /* 5932 */ + { 0, 0, printargs, "SYS_5933" }, /* 5933 */ + { 0, 0, printargs, "SYS_5934" }, /* 5934 */ + { 0, 0, printargs, "SYS_5935" }, /* 5935 */ + { 0, 0, printargs, "SYS_5936" }, /* 5936 */ + { 0, 0, printargs, "SYS_5937" }, /* 5937 */ + { 0, 0, printargs, "SYS_5938" }, /* 5938 */ + { 0, 0, printargs, "SYS_5939" }, /* 5939 */ + { 0, 0, printargs, "SYS_5940" }, /* 5940 */ + { 0, 0, printargs, "SYS_5941" }, /* 5941 */ + { 0, 0, printargs, "SYS_5942" }, /* 5942 */ + { 0, 0, printargs, "SYS_5943" }, /* 5943 */ + { 0, 0, printargs, "SYS_5944" }, /* 5944 */ + { 0, 0, printargs, "SYS_5945" }, /* 5945 */ + { 0, 0, printargs, "SYS_5946" }, /* 5946 */ + { 0, 0, printargs, "SYS_5947" }, /* 5947 */ + { 0, 0, printargs, "SYS_5948" }, /* 5948 */ + { 0, 0, printargs, "SYS_5949" }, /* 5949 */ + { 0, 0, printargs, "SYS_5950" }, /* 5950 */ + { 0, 0, printargs, "SYS_5951" }, /* 5951 */ + { 0, 0, printargs, "SYS_5952" }, /* 5952 */ + { 0, 0, printargs, "SYS_5953" }, /* 5953 */ + { 0, 0, printargs, "SYS_5954" }, /* 5954 */ + { 0, 0, printargs, "SYS_5955" }, /* 5955 */ + { 0, 0, printargs, "SYS_5956" }, /* 5956 */ + { 0, 0, printargs, "SYS_5957" }, /* 5957 */ + { 0, 0, printargs, "SYS_5958" }, /* 5958 */ + { 0, 0, printargs, "SYS_5959" }, /* 5959 */ + { 0, 0, printargs, "SYS_5960" }, /* 5960 */ + { 0, 0, printargs, "SYS_5961" }, /* 5961 */ + { 0, 0, printargs, "SYS_5962" }, /* 5962 */ + { 0, 0, printargs, "SYS_5963" }, /* 5963 */ + { 0, 0, printargs, "SYS_5964" }, /* 5964 */ + { 0, 0, printargs, "SYS_5965" }, /* 5965 */ + { 0, 0, printargs, "SYS_5966" }, /* 5966 */ + { 0, 0, printargs, "SYS_5967" }, /* 5967 */ + { 0, 0, printargs, "SYS_5968" }, /* 5968 */ + { 0, 0, printargs, "SYS_5969" }, /* 5969 */ + { 0, 0, printargs, "SYS_5970" }, /* 5970 */ + { 0, 0, printargs, "SYS_5971" }, /* 5971 */ + { 0, 0, printargs, "SYS_5972" }, /* 5972 */ + { 0, 0, printargs, "SYS_5973" }, /* 5973 */ + { 0, 0, printargs, "SYS_5974" }, /* 5974 */ + { 0, 0, printargs, "SYS_5975" }, /* 5975 */ + { 0, 0, printargs, "SYS_5976" }, /* 5976 */ + { 0, 0, printargs, "SYS_5977" }, /* 5977 */ + { 0, 0, printargs, "SYS_5978" }, /* 5978 */ + { 0, 0, printargs, "SYS_5979" }, /* 5979 */ + { 0, 0, printargs, "SYS_5980" }, /* 5980 */ + { 0, 0, printargs, "SYS_5981" }, /* 5981 */ + { 0, 0, printargs, "SYS_5982" }, /* 5982 */ + { 0, 0, printargs, "SYS_5983" }, /* 5983 */ + { 0, 0, printargs, "SYS_5984" }, /* 5984 */ + { 0, 0, printargs, "SYS_5985" }, /* 5985 */ + { 0, 0, printargs, "SYS_5986" }, /* 5986 */ + { 0, 0, printargs, "SYS_5987" }, /* 5987 */ + { 0, 0, printargs, "SYS_5988" }, /* 5988 */ + { 0, 0, printargs, "SYS_5989" }, /* 5989 */ + { 0, 0, printargs, "SYS_5990" }, /* 5990 */ + { 0, 0, printargs, "SYS_5991" }, /* 5991 */ + { 0, 0, printargs, "SYS_5992" }, /* 5992 */ + { 0, 0, printargs, "SYS_5993" }, /* 5993 */ + { 0, 0, printargs, "SYS_5994" }, /* 5994 */ + { 0, 0, printargs, "SYS_5995" }, /* 5995 */ + { 0, 0, printargs, "SYS_5996" }, /* 5996 */ + { 0, 0, printargs, "SYS_5997" }, /* 5997 */ + { 0, 0, printargs, "SYS_5998" }, /* 5998 */ + { 0, 0, printargs, "SYS_5999" }, /* 5999 */ /* end of Linux N64 */ + +#if defined (LINUX_MIPSN32) + /* For an N32 strace decode the N32 64-bit syscalls. */ + { 3, TF, sys_read, "read" }, /* 6000 */ /* start of Linux N32 */ + { 3, TF, sys_write, "write" }, /* 6001 */ + { 3, TF, sys_open, "open" }, /* 6002 */ + { 1, 0, sys_close, "close" }, /* 6003 */ + { 2, TF, sys_stat64, "stat" }, /* 6004 */ + { 2, 0, sys_fstat64, "fstat" }, /* 6005 */ + { 2, TF, sys_lstat64, "lstat" }, /* 6006 */ + { 3, 0, sys_poll, "poll" }, /* 6007 */ + { 3, 0, sys_lseek, "lseek" }, /* 6008 */ + { 6, 0, sys_mmap, "mmap" }, /* 6009 */ + { 3, 0, sys_mprotect, "mprotect" }, /* 6010 */ + { 2, 0, sys_munmap, "munmap" }, /* 6011 */ + { 1, 0, sys_brk, "brk" }, /* 6012 */ + { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 6013 */ + { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 6014 */ + { 3, 0, sys_ioctl, "ioctl" }, /* 6015 */ + { 6, TF, sys_pread64, "pread" }, /* 6016 */ + { 6, TF, sys_pwrite64, "pwrite" }, /* 6017 */ + { 3, 0, sys_readv, "readv" }, /* 6018 */ + { 3, 0, sys_writev, "writev" }, /* 6019 */ + { 2, TF, sys_access, "access" }, /* 6020 */ + { 1, 0, sys_pipe, "pipe" }, /* 6021 */ + { 5, 0, sys_select, "_newselect" }, /* 6022 */ + { 0, 0, sys_sched_yield, "sched_yield" }, /* 6023 */ + { 5, 0, sys_mremap, "mremap" }, /* 6024 */ + { 3, 0, sys_msync, "msync" }, /* 6025 */ + { 3, 0, printargs, "mincore" }, /* 6026 */ + { 3, 0, sys_madvise, "madvise" }, /* 6027 */ + { 3, TI, sys_shmget, "shmget" }, /* 6028 */ + { 3, TI, sys_shmat, "shmgat" }, /* 6029 */ + { 3, TI, sys_shmctl, "shmctl" }, /* 6030 */ + { 1, 0, sys_dup, "dup" }, /* 6031 */ + { 2, 0, sys_dup2, "dup2" }, /* 6032 */ + { 0, TS, sys_pause, "pause" }, /* 6033 */ + { 2, 0, sys_nanosleep, "nanosleep" }, /* 6034 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 6035 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 6036 */ + { 1, 0, sys_alarm, "alarm" }, /* 6037 */ + { 0, 0, sys_getpid, "getpid" }, /* 6038 */ + { 4, TD|TN, sys_sendfile, "sendfile" }, /* 6039 */ + { 2, 0, sys_socketcall, "socketcall" }, /* 6040 */ + { 3, TN, sys_connect, "connect" }, /* 6041 */ + { 3, TN, sys_accept, "accept" }, /* 6042 */ + { 6, TN, sys_sendto, "sendto" }, /* 6043 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 6044 */ + { 3, TN, sys_sendmsg, "sendmsg" }, /* 6045 */ + { 3, TN, sys_recvmsg, "recvmsg" }, /* 6046 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 6047 */ + { 3, TN, sys_bind, "bind" }, /* 6048 */ + { 2, TN, sys_listen, "listen" }, /* 6049 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 6050 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 6051 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 6052 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 6053 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 6054 */ + { 2, TP, sys_clone, "clone" }, /* 6055 */ + { 0, TP, sys_fork, "fork" }, /* 6056 */ + { 3, TF|TP, sys_execve, "execve" }, /* 6057 */ + { 1, TP, sys_exit, "exit" }, /* 6058 */ + { 4, TP, sys_wait4, "wait4" }, /* 6059 */ + { 2, TS, sys_kill, "kill" }, /* 6060 */ + { 1, 0, sys_uname, "uname" }, /* 6061 */ + { 3, TI, sys_semget, "semget" }, /* 6062 */ + { 3, TI, printargs, "semop" }, /* 6063 */ + { 4, TI, sys_semctl, "semctl" }, /* 6064 */ + { 1, TI, sys_shmdt, "shmdt" }, /* 6065 */ + { 2, TI, sys_msgget, "msgget" }, /* 6066 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 6067 */ + { 5, TI, sys_msgrcv, "msgrcv" }, /* 6068 */ + { 3, TI, sys_msgctl, "msgctl" }, /* 6069 */ + { 3, 0, sys_fcntl, "fcntl" }, /* 6070 */ + { 2, 0, sys_flock, "flock" }, /* 6071 */ + { 1, 0, sys_fsync, "fsync" }, /* 6072 */ + { 1, 0, sys_fdatasync, "fdatasync" }, /* 6073 */ + { 2, TF, sys_truncate, "truncate" }, /* 6074 */ + { 2, 0, sys_ftruncate, "ftruncate" }, /* 6075 */ + { 3, 0, sys_getdents, "getdents" }, /* 6076 */ + { 2, TF, sys_getcwd, "getcwd" }, /* 6077 */ + { 1, TF, sys_chdir, "chdir" }, /* 6078 */ + { 1, TF, sys_fchdir, "fchdir" }, /* 6079 */ + { 2, TF, sys_rename, "rename" }, /* 6080 */ + { 2, TF, sys_mkdir, "mkdir" }, /* 6081 */ + { 1, TF, sys_rmdir, "rmdir" }, /* 6082 */ + { 2, TF, sys_creat, "creat" }, /* 6083 */ + { 2, TF, sys_link, "link" }, /* 6084 */ + { 1, TF, sys_unlink, "unlink" }, /* 6085 */ + { 2, TF, sys_symlink, "symlink" }, /* 6086 */ + { 3, TF, sys_readlink, "readlink" }, /* 6087 */ + { 2, TF, sys_chmod, "chmod" }, /* 6088 */ + { 2, 0, sys_fchmod, "fchmod" }, /* 6089 */ + { 3, TF, sys_chown, "chown" }, /* 6090 */ + { 3, 0, sys_fchown, "fchown" }, /* 6091 */ + { 3, TF, sys_chown, "lchown" }, /* 6092 */ + { 1, 0, sys_umask, "umask" }, /* 6093 */ + { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 6094 */ + { 2, 0, sys_getrlimit, "getrlimit" }, /* 6095 */ + { 2, 0, sys_getrusage, "getrusage" }, /* 6096 */ + { 1, 0, sys_sysinfo, "sysinfo" }, /* 6097 */ + { 1, 0, sys_times, "times" }, /* 6098 */ + { 4, 0, sys_ptrace, "ptrace" }, /* 6099 */ + { 0, 0, sys_getuid, "getuid" }, /* 6100 */ + { 3, 0, sys_syslog, "syslog" }, /* 6101 */ + { 0, 0, sys_getgid, "getgid" }, /* 6102 */ + { 1, 0, sys_setuid, "setuid" }, /* 6103 */ + { 1, 0, sys_setgid, "setgid" }, /* 6104 */ + { 0, 0, sys_geteuid, "geteuid" }, /* 6105 */ + { 0, 0, sys_getegid, "getegid" }, /* 6106 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 6107 */ + { 0, 0, sys_getppid, "getppid" }, /* 6108 */ + { 0, 0, sys_getpgrp, "getpgrp" }, /* 6109 */ + { 0, 0, sys_setsid, "setsid" }, /* 6110 */ + { 2, 0, sys_setreuid, "setreuid" }, /* 6111 */ + { 2, 0, sys_setregid, "setregid" }, /* 6112 */ + { 2, 0, sys_getgroups, "getgroups" }, /* 6113 */ + { 2, 0, sys_setgroups, "setgroups" }, /* 6114 */ + { 3, 0, sys_setresuid, "setresuid" }, /* 6115 */ + { 3, 0, sys_getresuid, "getresuid" }, /* 6116 */ + { 3, 0, sys_setresgid, "setresgid" }, /* 6117 */ + { 3, 0, sys_getresgid, "getresgid" }, /* 6118 */ + { 0, 0, sys_getpgid, "getpgid" }, /* 6119 */ + { 1, 0, sys_setfsuid, "setfsuid" }, /* 6120 */ + { 1, 0, sys_setfsgid, "setfsgid" }, /* 6121 */ + { 1, 0, sys_getsid, "getsid" }, /* 6122 */ + { 2, 0, sys_capget, "capget" }, /* 6123 */ + { 2, 0, sys_capset, "capset" }, /* 6124 */ + { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 6125 */ + { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"},/* 6126 */ + { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"},/* 6127 */ + { 2, TS, sys_rt_sigsuspend, "rt_siguspend" }, /* 6128 */ + { 2, TS, sys_sigaltstack, "sigaltstatck" }, /* 6129 */ + { 2, TF, sys_utime, "utime" }, /* 6130 */ + { 3, TF, sys_mknod, "mknod" }, /* 6131 */ + { 1, 0, sys_personality, "personality" }, /* 6132 */ + { 2, 0, sys_ustat, "ustat" }, /* 6133 */ + { 3, 0, sys_statfs, "statfs" }, /* 6134 */ + { 3, 0, sys_fstatfs, "fstatfs" }, /* 6135 */ + { 5, 0, sys_sysfs, "sysfs" }, /* 6136 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 6137 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 6138 */ + { 2, 0, sys_sched_setparam, "sched_setparam"}, /* 6139 */ + { 2, 0, sys_sched_getparam, "sched_getparam"}, /* 6140 */ + { 3, 0, sys_sched_setscheduler, "sched_setscheduler"}, /* 6141 */ + { 1, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 6142 */ + { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 6143 */ + { 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 6144 */ + { 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 6145 */ + { 2, 0, sys_mlock, "mlock" }, /* 6146 */ + { 2, 0, sys_munlock, "munlock" }, /* 6147 */ + { 1, 0, sys_mlockall, "mlockall" }, /* 6148 */ + { 0, 0, sys_munlockall, "munlockall" }, /* 6149 */ + { 0, 0, sys_vhangup, "vhangup" }, /* 6150 */ + { 2, 0, sys_pivotroot, "pivot_root" }, /* 6151 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 6152 */ + { 5, 0, printargs, "prctl" }, /* 6153 */ + { 1, 0, sys_adjtimex, "adjtimex" }, /* 6154 */ + { 2, 0, sys_setrlimit, "setrlimit" }, /* 6155 */ + { 1, TF, sys_chroot, "chroot" }, /* 6156 */ + { 0, 0, sys_sync, "sync" }, /* 6157 */ + { 1, TF, sys_acct, "acct" }, /* 6158 */ + { 2, 0, sys_settimeofday, "settimeofday" }, /* 6159 */ + { 5, TF, sys_mount, "mount" }, /* 6160 */ + { 2, TF, sys_umount2, "umount" }, /* 6161 */ + { 1, TF, sys_swapon, "swapon" }, /* 6162 */ + { 1, 0, sys_swapoff, "swapoff" }, /* 6163 */ + { 3, 0, sys_reboot, "reboot" }, /* 6164 */ + { 2, 0, sys_sethostname, "sethostname" }, /* 6165 */ + { 2, 0, sys_setdomainname, "setdomainname" }, /* 6166 */ + { 2, 0, sys_create_module, "create_module" }, /* 6167 */ + { 4, 0, sys_init_module, "init_module" }, /* 6168 */ + { 1, 0, sys_delete_module, "delete_module" }, /* 6169 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 6170 */ + { 5, 0, sys_query_module, "query_module" }, /* 6171 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 6172 */ + { 3, 0, printargs, "nfsservctl" }, /* 6173 */ + { 5, TN, printargs, "getpmsg" }, /* 6174 */ + { 5, TN, printargs, "putpmsg" }, /* 6175 */ + { 0, 0, sys_afs_syscall, "afs_syscall" }, /* 6176 */ + { 0, 0, printargs, "reserved177" }, /* 6177 */ + { 0, 0, printargs, "gettid" }, /* 6178 */ + { 3, 0, sys_readahead, "readahead" }, /* 6179 */ + { 5, 0, sys_setxattr, "setxattr" }, /* 6180 */ + { 5, 0, sys_setxattr, "lsetxattr" }, /* 6181 */ + { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 6182 */ + { 4, 0, sys_getxattr, "getxattr" }, /* 6183 */ + { 4, 0, sys_getxattr, "lgetxattr" }, /* 6184 */ + { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 6185 */ + { 3, 0, sys_listxattr, "listxattr" }, /* 6186 */ + { 3, 0, sys_listxattr, "llistxattr" }, /* 6187 */ + { 3, 0, sys_flistxattr, "flistxattr" }, /* 6188 */ + { 2, 0, sys_removexattr, "removexattr" }, /* 6189 */ + { 2, 0, sys_removexattr, "lremovexattr" }, /* 6190 */ + { 2, 0, sys_fremovexattr, "fremovexattr" }, /* 6191 */ + { 2, 0, sys_kill, "tkill" }, /* 6192 */ + { 1, 0, sys_time, "time" }, /* 6193 */ + { 5, 0, printargs, "futex" }, /* 6194 */ + { 3, 0, printargs, "sched_setaffinity"}, /* 6195 */ + { 3, 0, printargs, "sched_getaffinity"}, /* 6196 */ + { 3, 0, printargs, "cacheflush" }, /* 6197 */ + { 3, 0, printargs, "cachectl" }, /* 6198 */ + { 4, 0, sys_sysmips, "sysmips" }, /* 6199 */ + { 0, 0, printargs, "io_setup" }, /* 6200 */ + { 0, 0, printargs, "io_destroy" }, /* 6201 */ + { 0, 0, printargs, "io_getevents" }, /* 6202 */ + { 0, 0, printargs, "io_submit" }, /* 6203 */ + { 0, 0, printargs, "io_cancel" }, /* 6204 */ + { 1, TP, sys_exit, "exit_group"}, /* 6205 */ + { 3, 0, printargs, "lookup_dcookie" }, /* 6206 */ + { 1, 0, sys_epoll_create, "epoll_create" }, /* 6207 */ + { 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 6208 */ + { 3, TD, sys_epoll_wait, "epoll_wait" }, /* 6209 */ + { 5, 0, sys_remap_file_pages, "remap_file_pages" }, /* 6210 */ + { 1, TS, printargs, "rt_sigreturn" }, /* 6211 */ + { 3, 0, sys_fcntl, "fcntl64" }, /* 6212 */ + { 0, 0, printargs, "set_tid_address" }, /* 6213 */ + { 0, 0, printargs, "restart_syscall" }, /* 6214 */ + { 0, 0, printargs, "semtimedop" }, /* 6215 */ + { 0, 0, printargs, "fadvise64" }, /* 6216 */ + { 0, 0, printargs, "statfs64" }, /* 6217 */ + { 0, 0, printargs, "fstatfs64" }, /* 6218 */ + { 4, TD|TN, printargs, "sendfile64" }, /* 6219 */ + { 3, 0, printargs, "timer_create" }, /* 6220 */ + { 4, 0, printargs, "timer_settime" }, /* 6221 */ + { 2, 0, printargs, "timer_gettime" }, /* 6222 */ + { 1, 0, printargs, "timer_getoverrun" }, /* 6223 */ + { 1, 0, printargs, "timer_delete" }, /* 6224 */ + { 2, 0, printargs, "clock_settime" }, /* 6225 */ + { 2, 0, printargs, "clock_gettime" }, /* 6226 */ + { 2, 0, printargs, "clock_getres" }, /* 6227 */ + { 4, 0, printargs, "clock_nanosleep" }, /* 6228 */ + { 3, 0, printargs, "tgkill" }, /* 6229 */ + { 2, 0, printargs, "utimes" }, /* 6230 */ +#else + { 0, 0, printargs, "n32_read" }, /* 6000 */ + { 0, 0, printargs, "n32_write" }, /* 6001 */ + { 0, 0, printargs, "n32_open" }, /* 6002 */ + { 0, 0, printargs, "n32_close" }, /* 6003 */ + { 0, 0, printargs, "n32_stat" }, /* 6004 */ + { 0, 0, printargs, "n32_fstat" }, /* 6005 */ + { 0, 0, printargs, "n32_lstat" }, /* 6006 */ + { 0, 0, printargs, "n32_poll" }, /* 6007 */ + { 0, 0, printargs, "n32_lseek" }, /* 6008 */ + { 0, 0, printargs, "n32_mmap" }, /* 6009 */ + { 0, 0, printargs, "n32_mprotect" }, /* 6010 */ + { 0, 0, printargs, "n32_munmap" }, /* 6011 */ + { 0, 0, printargs, "n32_brk" }, /* 6012 */ + { 0, 0, printargs, "n32_rt_sigaction" }, /* 6013 */ + { 0, 0, printargs, "n32_rt_sigprocmask" }, /* 6014 */ + { 0, 0, printargs, "n32_ioctl" }, /* 6015 */ + { 0, 0, printargs, "n32_pread" }, /* 6016 */ + { 0, 0, printargs, "n32_pwrite" }, /* 6017 */ + { 0, 0, printargs, "n32_readv" }, /* 6018 */ + { 0, 0, printargs, "n32_writev" }, /* 6019 */ + { 0, 0, printargs, "n32_access" }, /* 6020 */ + { 0, 0, printargs, "n32_pipe" }, /* 6021 */ + { 0, 0, printargs, "n32__newselect" }, /* 6022 */ + { 0, 0, printargs, "n32_sched_yield" }, /* 6023 */ + { 0, 0, printargs, "n32_mremap" }, /* 6024 */ + { 0, 0, printargs, "n32_msync" }, /* 6025 */ + { 0, 0, printargs, "n32_mincore" }, /* 6026 */ + { 0, 0, printargs, "n32_madvise" }, /* 6027 */ + { 0, 0, printargs, "n32_shmget" }, /* 6028 */ + { 0, 0, printargs, "n32_shmgat" }, /* 6029 */ + { 0, 0, printargs, "n32_shmctl" }, /* 6030 */ + { 0, 0, printargs, "n32_dup" }, /* 6031 */ + { 0, 0, printargs, "n32_dup2" }, /* 6032 */ + { 0, 0, printargs, "n32_pause" }, /* 6033 */ + { 0, 0, printargs, "n32_nanosleep" }, /* 6034 */ + { 0, 0, printargs, "n32_getitimer" }, /* 6035 */ + { 0, 0, printargs, "n32_setitimer" }, /* 6036 */ + { 0, 0, printargs, "n32_alarm" }, /* 6037 */ + { 0, 0, printargs, "n32_getpid" }, /* 6038 */ + { 0, 0, printargs, "n32_sendfile" }, /* 6039 */ + { 0, 0, printargs, "n32_socketcall" }, /* 6040 */ + { 0, 0, printargs, "n32_connect" }, /* 6041 */ + { 0, 0, printargs, "n32_accept" }, /* 6042 */ + { 0, 0, printargs, "n32_sendto" }, /* 6043 */ + { 0, 0, printargs, "n32_recvfrom" }, /* 6044 */ + { 0, 0, printargs, "n32_sendmsg" }, /* 6045 */ + { 0, 0, printargs, "n32_recvmsg" }, /* 6046 */ + { 0, 0, printargs, "n32_shutdown" }, /* 6047 */ + { 0, 0, printargs, "n32_bind" }, /* 6048 */ + { 0, 0, printargs, "n32_listen" }, /* 6049 */ + { 0, 0, printargs, "n32_getsockname" }, /* 6050 */ + { 0, 0, printargs, "n32_getpeername" }, /* 6051 */ + { 0, 0, printargs, "n32_socketpair" }, /* 6052 */ + { 0, 0, printargs, "n32_setsockopt" }, /* 6053 */ + { 0, 0, printargs, "n32_getsockopt" }, /* 6054 */ + { 0, 0, printargs, "n32_clone" }, /* 6055 */ + { 0, 0, printargs, "n32_fork" }, /* 6056 */ + { 0, 0, printargs, "n32_execve" }, /* 6057 */ + { 0, 0, printargs, "n32_exit" }, /* 6058 */ + { 0, 0, printargs, "n32_wait4" }, /* 6059 */ + { 0, 0, printargs, "n32_kill" }, /* 6060 */ + { 0, 0, printargs, "n32_uname" }, /* 6061 */ + { 0, 0, printargs, "n32_semget" }, /* 6062 */ + { 0, 0, printargs, "n32_semop" }, /* 6063 */ + { 0, 0, printargs, "n32_semctl" }, /* 6064 */ + { 0, 0, printargs, "n32_shmdt" }, /* 6065 */ + { 0, 0, printargs, "n32_msgget" }, /* 6066 */ + { 0, 0, printargs, "n32_msgsnd" }, /* 6067 */ + { 0, 0, printargs, "n32_msgrcv" }, /* 6068 */ + { 0, 0, printargs, "n32_msgctl" }, /* 6069 */ + { 0, 0, printargs, "n32_fcntl" }, /* 6070 */ + { 0, 0, printargs, "n32_flock" }, /* 6071 */ + { 0, 0, printargs, "n32_fsync" }, /* 6072 */ + { 0, 0, printargs, "n32_fdatasync" }, /* 6073 */ + { 0, 0, printargs, "n32_truncate" }, /* 6074 */ + { 0, 0, printargs, "n32_ftruncate" }, /* 6075 */ + { 0, 0, printargs, "n32_getdents" }, /* 6076 */ + { 0, 0, printargs, "n32_getcwd" }, /* 6077 */ + { 0, 0, printargs, "n32_chdir" }, /* 6078 */ + { 0, 0, printargs, "n32_fchdir" }, /* 6079 */ + { 0, 0, printargs, "n32_rename" }, /* 6080 */ + { 0, 0, printargs, "n32_mkdir" }, /* 6081 */ + { 0, 0, printargs, "n32_rmdir" }, /* 6082 */ + { 0, 0, printargs, "n32_creat" }, /* 6083 */ + { 0, 0, printargs, "n32_link" }, /* 6084 */ + { 0, 0, printargs, "n32_unlink" }, /* 6085 */ + { 0, 0, printargs, "n32_symlink" }, /* 6086 */ + { 0, 0, printargs, "n32_readlink" }, /* 6087 */ + { 0, 0, printargs, "n32_chmod" }, /* 6088 */ + { 0, 0, printargs, "n32_fchmod" }, /* 6089 */ + { 0, 0, printargs, "n32_chown" }, /* 6090 */ + { 0, 0, printargs, "n32_fchown" }, /* 6091 */ + { 0, 0, printargs, "n32_lchown" }, /* 6092 */ + { 0, 0, printargs, "n32_umask" }, /* 6093 */ + { 0, 0, printargs, "n32_gettimeofday" }, /* 6094 */ + { 0, 0, printargs, "n32_getrlimit" }, /* 6095 */ + { 0, 0, printargs, "n32_getrusage" }, /* 6096 */ + { 0, 0, printargs, "n32_sysinfo" }, /* 6097 */ + { 0, 0, printargs, "n32_times" }, /* 6098 */ + { 0, 0, printargs, "n32_ptrace" }, /* 6099 */ + { 0, 0, printargs, "n32_getuid" }, /* 6100 */ + { 0, 0, printargs, "n32_syslog" }, /* 6101 */ + { 0, 0, printargs, "n32_getgid" }, /* 6102 */ + { 0, 0, printargs, "n32_setuid" }, /* 6103 */ + { 0, 0, printargs, "n32_setgid" }, /* 6104 */ + { 0, 0, printargs, "n32_geteuid" }, /* 6105 */ + { 0, 0, printargs, "n32_getegid" }, /* 6106 */ + { 0, 0, printargs, "n32_setpgid" }, /* 6107 */ + { 0, 0, printargs, "n32_getppid" }, /* 6108 */ + { 0, 0, printargs, "n32_getpgrp" }, /* 6109 */ + { 0, 0, printargs, "n32_setsid" }, /* 6110 */ + { 0, 0, printargs, "n32_setreuid" }, /* 6111 */ + { 0, 0, printargs, "n32_setregid" }, /* 6112 */ + { 0, 0, printargs, "n32_getgroups" }, /* 6113 */ + { 0, 0, printargs, "n32_setgroups" }, /* 6114 */ + { 0, 0, printargs, "n32_setresuid" }, /* 6115 */ + { 0, 0, printargs, "n32_getresuid" }, /* 6116 */ + { 0, 0, printargs, "n32_setresgid" }, /* 6117 */ + { 0, 0, printargs, "n32_getresgid" }, /* 6118 */ + { 0, 0, printargs, "n32_getpgid" }, /* 6119 */ + { 0, 0, printargs, "n32_setfsuid" }, /* 6120 */ + { 0, 0, printargs, "n32_setfsgid" }, /* 6121 */ + { 0, 0, printargs, "n32_getsid" }, /* 6122 */ + { 0, 0, printargs, "n32_capget" }, /* 6123 */ + { 0, 0, printargs, "n32_capset" }, /* 6124 */ + { 0, 0, printargs, "n32_rt_sigpending" }, /* 6125 */ + { 0, 0, printargs, "n32_rt_sigtimedwait" }, /* 6126 */ + { 0, 0, printargs, "n32_rt_sigqueueinfo" }, /* 6127 */ + { 0, 0, printargs, "n32_rt_siguspend" }, /* 6128 */ + { 0, 0, printargs, "n32_sigaltstatck" }, /* 6129 */ + { 0, 0, printargs, "n32_utime" }, /* 6130 */ + { 0, 0, printargs, "n32_mknod" }, /* 6131 */ + { 0, 0, printargs, "n32_personality" }, /* 6132 */ + { 0, 0, printargs, "n32_ustat" }, /* 6133 */ + { 0, 0, printargs, "n32_statfs" }, /* 6134 */ + { 0, 0, printargs, "n32_fstatfs" }, /* 6135 */ + { 0, 0, printargs, "n32_sysfs" }, /* 6136 */ + { 0, 0, printargs, "n32_getpriority" }, /* 6137 */ + { 0, 0, printargs, "n32_setpriority" }, /* 6138 */ + { 0, 0, printargs, "n32_sched_setparam" }, /* 6139 */ + { 0, 0, printargs, "n32_sched_getparam" }, /* 6140 */ + { 0, 0, printargs, "n32_sched_setscheduler"}, /* 6141 */ + { 0, 0, printargs, "n32_sched_getscheduler"}, /* 6142 */ + { 0, 0, printargs, "n32_sched_get_priority_max"}, /* 6143 */ + { 0, 0, printargs, "n32_sched_get_priority_min"}, /* 6144 */ + { 0, 0, printargs, "n32_sched_rr_get_interval"}, /* 6145 */ + { 0, 0, printargs, "n32_mlock" }, /* 6146 */ + { 0, 0, printargs, "n32_munlock" }, /* 6147 */ + { 0, 0, printargs, "n32_mlockall" }, /* 6148 */ + { 0, 0, printargs, "n32_munlockall" }, /* 6149 */ + { 0, 0, printargs, "n32_vhangup" }, /* 6150 */ + { 0, 0, printargs, "n32_pivot_root" }, /* 6151 */ + { 0, 0, printargs, "n32__sysctl" }, /* 6152 */ + { 0, 0, printargs, "n32_prctl" }, /* 6153 */ + { 0, 0, printargs, "n32_adjtimex" }, /* 6154 */ + { 0, 0, printargs, "n32_setrlimit" }, /* 6155 */ + { 0, 0, printargs, "n32_chroot" }, /* 6156 */ + { 0, 0, printargs, "n32_sync" }, /* 6157 */ + { 0, 0, printargs, "n32_acct" }, /* 6158 */ + { 0, 0, printargs, "n32_settimeofday" }, /* 6159 */ + { 0, 0, printargs, "n32_mount" }, /* 6160 */ + { 0, 0, printargs, "n32_umount" }, /* 6161 */ + { 0, 0, printargs, "n32_swapon" }, /* 6162 */ + { 0, 0, printargs, "n32_swapoff" }, /* 6163 */ + { 0, 0, printargs, "n32_reboot" }, /* 6164 */ + { 0, 0, printargs, "n32_sethostname" }, /* 6165 */ + { 0, 0, printargs, "n32_setdomainname" }, /* 6166 */ + { 0, 0, printargs, "n32_create_module" }, /* 6167 */ + { 0, 0, printargs, "n32_init_module" }, /* 6168 */ + { 0, 0, printargs, "n32_delete_module" }, /* 6169 */ + { 0, 0, printargs, "n32_get_kernel_syms" }, /* 6170 */ + { 0, 0, printargs, "n32_query_module" }, /* 6171 */ + { 0, 0, printargs, "n32_quotactl" }, /* 6172 */ + { 0, 0, printargs, "n32_nfsservctl" }, /* 6173 */ + { 0, 0, printargs, "n32_getpmsg" }, /* 6174 */ + { 0, 0, printargs, "n32_putpmsg" }, /* 6175 */ + { 0, 0, printargs, "n32_afs_syscall" }, /* 6176 */ + { 0, 0, printargs, "n32_reserved177" }, /* 6177 */ + { 0, 0, printargs, "n32_gettid" }, /* 6178 */ + { 0, 0, printargs, "n32_readahead" }, /* 6179 */ + { 0, 0, printargs, "n32_setxattr" }, /* 6180 */ + { 0, 0, printargs, "n32_lsetxattr" }, /* 6181 */ + { 0, 0, printargs, "n32_fsetxattr" }, /* 6182 */ + { 0, 0, printargs, "n32_getxattr" }, /* 6183 */ + { 0, 0, printargs, "n32_lgetxattr" }, /* 6184 */ + { 0, 0, printargs, "n32_fgetxattr" }, /* 6185 */ + { 0, 0, printargs, "n32_listxattr" }, /* 6186 */ + { 0, 0, printargs, "n32_llistxattr" }, /* 6187 */ + { 0, 0, printargs, "n32_flistxattr" }, /* 6188 */ + { 0, 0, printargs, "n32_removexattr" }, /* 6189 */ + { 0, 0, printargs, "n32_lremovexattr" }, /* 6190 */ + { 0, 0, printargs, "n32_fremovexattr" }, /* 6191 */ + { 0, 0, printargs, "n32_tkill" }, /* 6192 */ + { 0, 0, printargs, "n32_time" }, /* 6193 */ + { 0, 0, printargs, "n32_futex" }, /* 6194 */ + { 0, 0, printargs, "n32_sched_setaffinity" }, /* 6195 */ + { 0, 0, printargs, "n32_sched_getaffinity" }, /* 6196 */ + { 0, 0, printargs, "n32_cacheflush" }, /* 6197 */ + { 0, 0, printargs, "n32_cachectl" }, /* 6198 */ + { 0, 0, printargs, "n32_sysmips" }, /* 6199 */ + { 0, 0, printargs, "n32_io_setup" }, /* 6200 */ + { 0, 0, printargs, "n32_io_destroy" }, /* 6201 */ + { 0, 0, printargs, "n32_io_getevents" }, /* 6202 */ + { 0, 0, printargs, "n32_io_submit" }, /* 6203 */ + { 0, 0, printargs, "n32_io_cancel" }, /* 6204 */ + { 1, TP, printargs, "n32_exit_group" }, /* 6205 */ + { 0, 0, printargs, "n32_lookup_dcookie" }, /* 6206 */ + { 0, 0, printargs, "n32_epoll_create" }, /* 6207 */ + { 0, 0, printargs, "n32_epoll_ctl" }, /* 6208 */ + { 0, 0, printargs, "n32_epoll_wait" }, /* 6209 */ + { 0, 0, printargs, "n32_remap_file_pages" }, /* 6210 */ + { 0, 0, printargs, "n32_rt_sigreturn" }, /* 6211 */ + { 0, 0, printargs, "n32_fcntl64" }, /* 6212 */ + { 0, 0, printargs, "n32_set_tid_address" }, /* 6213 */ + { 0, 0, printargs, "n32_restart_syscall" }, /* 6214 */ + { 0, 0, printargs, "n32_semtimedop" }, /* 6215 */ + { 0, 0, printargs, "n32_fadvise64" }, /* 6216 */ + { 0, 0, printargs, "n32_statfs64" }, /* 6217 */ + { 0, 0, printargs, "n32_fstatfs64" }, /* 6218 */ + { 0, 0, printargs, "n32_sendfile64" }, /* 6219 */ + { 3, 0, printargs, "n32_timer_create" }, /* 6220 */ + { 4, 0, printargs, "n32_timer_settime" }, /* 6221 */ + { 2, 0, printargs, "n32_timer_gettime" }, /* 6222 */ + { 1, 0, printargs, "n32_timer_getoverrun" }, /* 6223 */ + { 1, 0, printargs, "n32_timer_delete" }, /* 6224 */ + { 2, 0, printargs, "n32_clock_settime" }, /* 6225 */ + { 2, 0, printargs, "n32_clock_gettime" }, /* 6226 */ + { 2, 0, printargs, "n32_clock_getres" }, /* 6227 */ + { 4, 0, printargs, "n32_clock_nanosleep" }, /* 6228 */ + { 3, 0, printargs, "n32_tgkill" }, /* 6229 */ + { 2, 0, printargs, "n32_utimes" }, /* 6230 */ +#endif + { 0, 0, printargs, "SYS_6231" }, /* 6231 */ + { 0, 0, printargs, "SYS_6232" }, /* 6232 */ + { 0, 0, printargs, "SYS_6233" }, /* 6233 */ + { 0, 0, printargs, "SYS_6234" }, /* 6234 */ + { 0, 0, printargs, "SYS_6235" }, /* 6235 */ + { 0, 0, printargs, "SYS_6236" }, /* 6236 */ + { 0, 0, printargs, "SYS_6237" }, /* 6237 */ + { 0, 0, printargs, "SYS_6238" }, /* 6238 */ + { 0, 0, printargs, "SYS_6239" }, /* 6239 */ + { 0, 0, printargs, "SYS_6240" }, /* 6240 */ + { 0, 0, printargs, "SYS_6241" }, /* 6241 */ + { 0, 0, printargs, "SYS_6242" }, /* 6242 */ + { 0, 0, printargs, "SYS_6243" }, /* 6243 */ + { 0, 0, printargs, "SYS_6244" }, /* 6244 */ + { 0, 0, printargs, "SYS_6245" }, /* 6245 */ + { 0, 0, printargs, "SYS_6246" }, /* 6246 */ + { 0, 0, printargs, "SYS_6247" }, /* 6247 */ + { 0, 0, printargs, "SYS_6248" }, /* 6248 */ + { 0, 0, printargs, "SYS_6249" }, /* 6249 */ + { 0, 0, printargs, "SYS_6250" }, /* 6250 */ + { 0, 0, printargs, "SYS_6251" }, /* 6251 */ + { 0, 0, printargs, "SYS_6252" }, /* 6252 */ + { 0, 0, printargs, "SYS_6253" }, /* 6253 */ + { 0, 0, printargs, "SYS_6254" }, /* 6254 */ + { 0, 0, printargs, "SYS_6255" }, /* 6255 */ + { 0, 0, printargs, "SYS_6256" }, /* 6256 */ + { 0, 0, printargs, "SYS_6257" }, /* 6257 */ + { 0, 0, printargs, "SYS_6258" }, /* 6258 */ + { 0, 0, printargs, "SYS_6259" }, /* 6259 */ + { 0, 0, printargs, "SYS_6260" }, /* 6260 */ + { 0, 0, printargs, "SYS_6261" }, /* 6261 */ + { 0, 0, printargs, "SYS_6262" }, /* 6262 */ + { 0, 0, printargs, "SYS_6263" }, /* 6263 */ + { 0, 0, printargs, "SYS_6264" }, /* 6264 */ + { 0, 0, printargs, "SYS_6265" }, /* 6265 */ + { 0, 0, printargs, "SYS_6266" }, /* 6266 */ + { 0, 0, printargs, "SYS_6267" }, /* 6267 */ + { 0, 0, printargs, "SYS_6268" }, /* 6268 */ + { 0, 0, printargs, "SYS_6269" }, /* 6269 */ + { 0, 0, printargs, "SYS_6270" }, /* 6270 */ + { 0, 0, printargs, "SYS_6271" }, /* 6271 */ + { 0, 0, printargs, "SYS_6272" }, /* 6272 */ + { 0, 0, printargs, "SYS_6273" }, /* 6273 */ + { 0, 0, printargs, "SYS_6274" }, /* 6274 */ + { 0, 0, printargs, "SYS_6275" }, /* 6275 */ + { 0, 0, printargs, "SYS_6276" }, /* 6276 */ + { 0, 0, printargs, "SYS_6277" }, /* 6277 */ + { 0, 0, printargs, "SYS_6278" }, /* 6278 */ + { 0, 0, printargs, "SYS_6279" }, /* 6279 */ + { 0, 0, printargs, "SYS_6280" }, /* 6280 */ + { 0, 0, printargs, "SYS_6281" }, /* 6281 */ + { 0, 0, printargs, "SYS_6282" }, /* 6282 */ + { 0, 0, printargs, "SYS_6283" }, /* 6283 */ + { 0, 0, printargs, "SYS_6284" }, /* 6284 */ + { 0, 0, printargs, "SYS_6285" }, /* 6285 */ + { 0, 0, printargs, "SYS_6286" }, /* 6286 */ + { 0, 0, printargs, "SYS_6287" }, /* 6287 */ + { 0, 0, printargs, "SYS_6288" }, /* 6288 */ + { 0, 0, printargs, "SYS_6289" }, /* 6289 */ + { 0, 0, printargs, "SYS_6290" }, /* 6290 */ + { 0, 0, printargs, "SYS_6291" }, /* 6291 */ + { 0, 0, printargs, "SYS_6292" }, /* 6292 */ + { 0, 0, printargs, "SYS_6293" }, /* 6293 */ + { 0, 0, printargs, "SYS_6294" }, /* 6294 */ + { 0, 0, printargs, "SYS_6295" }, /* 6295 */ + { 0, 0, printargs, "SYS_6296" }, /* 6296 */ + { 0, 0, printargs, "SYS_6297" }, /* 6297 */ + { 0, 0, printargs, "SYS_6298" }, /* 6298 */ + { 0, 0, printargs, "SYS_6299" }, /* 6299 */ + { 0, 0, printargs, "SYS_6300" }, /* 6300 */ + { 0, 0, printargs, "SYS_6301" }, /* 6301 */ + { 0, 0, printargs, "SYS_6302" }, /* 6302 */ + { 0, 0, printargs, "SYS_6303" }, /* 6303 */ + { 0, 0, printargs, "SYS_6304" }, /* 6304 */ + { 0, 0, printargs, "SYS_6305" }, /* 6305 */ + { 0, 0, printargs, "SYS_6306" }, /* 6306 */ + { 0, 0, printargs, "SYS_6307" }, /* 6307 */ + { 0, 0, printargs, "SYS_6308" }, /* 6308 */ + { 0, 0, printargs, "SYS_6309" }, /* 6309 */ + { 0, 0, printargs, "SYS_6310" }, /* 6310 */ + { 0, 0, printargs, "SYS_6311" }, /* 6311 */ + { 0, 0, printargs, "SYS_6312" }, /* 6312 */ + { 0, 0, printargs, "SYS_6313" }, /* 6313 */ + { 0, 0, printargs, "SYS_6314" }, /* 6314 */ + { 0, 0, printargs, "SYS_6315" }, /* 6315 */ + { 0, 0, printargs, "SYS_6316" }, /* 6316 */ + { 0, 0, printargs, "SYS_6317" }, /* 6317 */ + { 0, 0, printargs, "SYS_6318" }, /* 6318 */ + { 0, 0, printargs, "SYS_6319" }, /* 6319 */ + { 0, 0, printargs, "SYS_6320" }, /* 6320 */ + { 0, 0, printargs, "SYS_6321" }, /* 6321 */ + { 0, 0, printargs, "SYS_6322" }, /* 6322 */ + { 0, 0, printargs, "SYS_6323" }, /* 6323 */ + { 0, 0, printargs, "SYS_6324" }, /* 6324 */ + { 0, 0, printargs, "SYS_6325" }, /* 6325 */ + { 0, 0, printargs, "SYS_6326" }, /* 6326 */ + { 0, 0, printargs, "SYS_6327" }, /* 6327 */ + { 0, 0, printargs, "SYS_6328" }, /* 6328 */ + { 0, 0, printargs, "SYS_6329" }, /* 6329 */ + { 0, 0, printargs, "SYS_6330" }, /* 6330 */ + { 0, 0, printargs, "SYS_6331" }, /* 6331 */ + { 0, 0, printargs, "SYS_6332" }, /* 6332 */ + { 0, 0, printargs, "SYS_6333" }, /* 6333 */ + { 0, 0, printargs, "SYS_6334" }, /* 6334 */ + { 0, 0, printargs, "SYS_6335" }, /* 6335 */ + { 0, 0, printargs, "SYS_6336" }, /* 6336 */ + { 0, 0, printargs, "SYS_6337" }, /* 6337 */ + { 0, 0, printargs, "SYS_6338" }, /* 6338 */ + { 0, 0, printargs, "SYS_6339" }, /* 6339 */ + { 0, 0, printargs, "SYS_6340" }, /* 6340 */ + { 0, 0, printargs, "SYS_6341" }, /* 6341 */ + { 0, 0, printargs, "SYS_6342" }, /* 6342 */ + { 0, 0, printargs, "SYS_6343" }, /* 6343 */ + { 0, 0, printargs, "SYS_6344" }, /* 6344 */ + { 0, 0, printargs, "SYS_6345" }, /* 6345 */ + { 0, 0, printargs, "SYS_6346" }, /* 6346 */ + { 0, 0, printargs, "SYS_6347" }, /* 6347 */ + { 0, 0, printargs, "SYS_6348" }, /* 6348 */ + { 0, 0, printargs, "SYS_6349" }, /* 6349 */ + { 0, 0, printargs, "SYS_6350" }, /* 6350 */ + { 0, 0, printargs, "SYS_6351" }, /* 6351 */ + { 0, 0, printargs, "SYS_6352" }, /* 6352 */ + { 0, 0, printargs, "SYS_6353" }, /* 6353 */ + { 0, 0, printargs, "SYS_6354" }, /* 6354 */ + { 0, 0, printargs, "SYS_6355" }, /* 6355 */ + { 0, 0, printargs, "SYS_6356" }, /* 6356 */ + { 0, 0, printargs, "SYS_6357" }, /* 6357 */ + { 0, 0, printargs, "SYS_6358" }, /* 6358 */ + { 0, 0, printargs, "SYS_6359" }, /* 6359 */ + { 0, 0, printargs, "SYS_6360" }, /* 6360 */ + { 0, 0, printargs, "SYS_6361" }, /* 6361 */ + { 0, 0, printargs, "SYS_6362" }, /* 6362 */ + { 0, 0, printargs, "SYS_6363" }, /* 6363 */ + { 0, 0, printargs, "SYS_6364" }, /* 6364 */ + { 0, 0, printargs, "SYS_6365" }, /* 6365 */ + { 0, 0, printargs, "SYS_6366" }, /* 6366 */ + { 0, 0, printargs, "SYS_6367" }, /* 6367 */ + { 0, 0, printargs, "SYS_6368" }, /* 6368 */ + { 0, 0, printargs, "SYS_6369" }, /* 6369 */ + { 0, 0, printargs, "SYS_6370" }, /* 6370 */ + { 0, 0, printargs, "SYS_6371" }, /* 6371 */ + { 0, 0, printargs, "SYS_6372" }, /* 6372 */ + { 0, 0, printargs, "SYS_6373" }, /* 6373 */ + { 0, 0, printargs, "SYS_6374" }, /* 6374 */ + { 0, 0, printargs, "SYS_6375" }, /* 6375 */ + { 0, 0, printargs, "SYS_6376" }, /* 6376 */ + { 0, 0, printargs, "SYS_6377" }, /* 6377 */ + { 0, 0, printargs, "SYS_6378" }, /* 6378 */ + { 0, 0, printargs, "SYS_6379" }, /* 6379 */ + { 0, 0, printargs, "SYS_6380" }, /* 6380 */ + { 0, 0, printargs, "SYS_6381" }, /* 6381 */ + { 0, 0, printargs, "SYS_6382" }, /* 6382 */ + { 0, 0, printargs, "SYS_6383" }, /* 6383 */ + { 0, 0, printargs, "SYS_6384" }, /* 6384 */ + { 0, 0, printargs, "SYS_6385" }, /* 6385 */ + { 0, 0, printargs, "SYS_6386" }, /* 6386 */ + { 0, 0, printargs, "SYS_6387" }, /* 6387 */ + { 0, 0, printargs, "SYS_6388" }, /* 6388 */ + { 0, 0, printargs, "SYS_6389" }, /* 6389 */ + { 0, 0, printargs, "SYS_6390" }, /* 6390 */ + { 0, 0, printargs, "SYS_6391" }, /* 6391 */ + { 0, 0, printargs, "SYS_6392" }, /* 6392 */ + { 0, 0, printargs, "SYS_6393" }, /* 6393 */ + { 0, 0, printargs, "SYS_6394" }, /* 6394 */ + { 0, 0, printargs, "SYS_6395" }, /* 6395 */ + { 0, 0, printargs, "SYS_6396" }, /* 6396 */ + { 0, 0, printargs, "SYS_6397" }, /* 6397 */ + { 0, 0, printargs, "SYS_6398" }, /* 6398 */ + { 0, 0, printargs, "SYS_6399" }, /* 6399 */ + { 0, 0, printargs, "SYS_6400" }, /* 6400 */ + { 0, 0, printargs, "SYS_6401" }, /* 6401 */ + { 0, 0, printargs, "SYS_6402" }, /* 6402 */ + { 0, 0, printargs, "SYS_6403" }, /* 6403 */ + { 0, 0, printargs, "SYS_6404" }, /* 6404 */ + { 0, 0, printargs, "SYS_6405" }, /* 6405 */ + { 0, 0, printargs, "SYS_6406" }, /* 6406 */ + { 0, 0, printargs, "SYS_6407" }, /* 6407 */ + { 0, 0, printargs, "SYS_6408" }, /* 6408 */ + { 0, 0, printargs, "SYS_6409" }, /* 6409 */ + { 0, 0, printargs, "SYS_6410" }, /* 6410 */ + { 0, 0, printargs, "SYS_6411" }, /* 6411 */ + { 0, 0, printargs, "SYS_6412" }, /* 6412 */ + { 0, 0, printargs, "SYS_6413" }, /* 6413 */ + { 0, 0, printargs, "SYS_6414" }, /* 6414 */ + { 0, 0, printargs, "SYS_6415" }, /* 6415 */ + { 0, 0, printargs, "SYS_6416" }, /* 6416 */ + { 0, 0, printargs, "SYS_6417" }, /* 6417 */ + { 0, 0, printargs, "SYS_6418" }, /* 6418 */ + { 0, 0, printargs, "SYS_6419" }, /* 6419 */ + { 0, 0, printargs, "SYS_6420" }, /* 6420 */ + { 0, 0, printargs, "SYS_6421" }, /* 6421 */ + { 0, 0, printargs, "SYS_6422" }, /* 6422 */ + { 0, 0, printargs, "SYS_6423" }, /* 6423 */ + { 0, 0, printargs, "SYS_6424" }, /* 6424 */ + { 0, 0, printargs, "SYS_6425" }, /* 6425 */ + { 0, 0, printargs, "SYS_6426" }, /* 6426 */ + { 0, 0, printargs, "SYS_6427" }, /* 6427 */ + { 0, 0, printargs, "SYS_6428" }, /* 6428 */ + { 0, 0, printargs, "SYS_6429" }, /* 6429 */ + { 0, 0, printargs, "SYS_6430" }, /* 6430 */ + { 0, 0, printargs, "SYS_6431" }, /* 6431 */ + { 0, 0, printargs, "SYS_6432" }, /* 6432 */ + { 0, 0, printargs, "SYS_6433" }, /* 6433 */ + { 0, 0, printargs, "SYS_6434" }, /* 6434 */ + { 0, 0, printargs, "SYS_6435" }, /* 6435 */ + { 0, 0, printargs, "SYS_6436" }, /* 6436 */ + { 0, 0, printargs, "SYS_6437" }, /* 6437 */ + { 0, 0, printargs, "SYS_6438" }, /* 6438 */ + { 0, 0, printargs, "SYS_6439" }, /* 6439 */ + { 0, 0, printargs, "SYS_6440" }, /* 6440 */ + { 0, 0, printargs, "SYS_6441" }, /* 6441 */ + { 0, 0, printargs, "SYS_6442" }, /* 6442 */ + { 0, 0, printargs, "SYS_6443" }, /* 6443 */ + { 0, 0, printargs, "SYS_6444" }, /* 6444 */ + { 0, 0, printargs, "SYS_6445" }, /* 6445 */ + { 0, 0, printargs, "SYS_6446" }, /* 6446 */ + { 0, 0, printargs, "SYS_6447" }, /* 6447 */ + { 0, 0, printargs, "SYS_6448" }, /* 6448 */ + { 0, 0, printargs, "SYS_6449" }, /* 6449 */ + { 0, 0, printargs, "SYS_6450" }, /* 6450 */ + { 0, 0, printargs, "SYS_6451" }, /* 6451 */ + { 0, 0, printargs, "SYS_6452" }, /* 6452 */ + { 0, 0, printargs, "SYS_6453" }, /* 6453 */ + { 0, 0, printargs, "SYS_6454" }, /* 6454 */ + { 0, 0, printargs, "SYS_6455" }, /* 6455 */ + { 0, 0, printargs, "SYS_6456" }, /* 6456 */ + { 0, 0, printargs, "SYS_6457" }, /* 6457 */ + { 0, 0, printargs, "SYS_6458" }, /* 6458 */ + { 0, 0, printargs, "SYS_6459" }, /* 6459 */ + { 0, 0, printargs, "SYS_6460" }, /* 6460 */ + { 0, 0, printargs, "SYS_6461" }, /* 6461 */ + { 0, 0, printargs, "SYS_6462" }, /* 6462 */ + { 0, 0, printargs, "SYS_6463" }, /* 6463 */ + { 0, 0, printargs, "SYS_6464" }, /* 6464 */ + { 0, 0, printargs, "SYS_6465" }, /* 6465 */ + { 0, 0, printargs, "SYS_6466" }, /* 6466 */ + { 0, 0, printargs, "SYS_6467" }, /* 6467 */ + { 0, 0, printargs, "SYS_6468" }, /* 6468 */ + { 0, 0, printargs, "SYS_6469" }, /* 6469 */ + { 0, 0, printargs, "SYS_6470" }, /* 6470 */ + { 0, 0, printargs, "SYS_6471" }, /* 6471 */ + { 0, 0, printargs, "SYS_6472" }, /* 6472 */ + { 0, 0, printargs, "SYS_6473" }, /* 6473 */ + { 0, 0, printargs, "SYS_6474" }, /* 6474 */ + { 0, 0, printargs, "SYS_6475" }, /* 6475 */ + { 0, 0, printargs, "SYS_6476" }, /* 6476 */ + { 0, 0, printargs, "SYS_6477" }, /* 6477 */ + { 0, 0, printargs, "SYS_6478" }, /* 6478 */ + { 0, 0, printargs, "SYS_6479" }, /* 6479 */ + { 0, 0, printargs, "SYS_6480" }, /* 6480 */ + { 0, 0, printargs, "SYS_6481" }, /* 6481 */ + { 0, 0, printargs, "SYS_6482" }, /* 6482 */ + { 0, 0, printargs, "SYS_6483" }, /* 6483 */ + { 0, 0, printargs, "SYS_6484" }, /* 6484 */ + { 0, 0, printargs, "SYS_6485" }, /* 6485 */ + { 0, 0, printargs, "SYS_6486" }, /* 6486 */ + { 0, 0, printargs, "SYS_6487" }, /* 6487 */ + { 0, 0, printargs, "SYS_6488" }, /* 6488 */ + { 0, 0, printargs, "SYS_6489" }, /* 6489 */ + { 0, 0, printargs, "SYS_6490" }, /* 6490 */ + { 0, 0, printargs, "SYS_6491" }, /* 6491 */ + { 0, 0, printargs, "SYS_6492" }, /* 6492 */ + { 0, 0, printargs, "SYS_6493" }, /* 6493 */ + { 0, 0, printargs, "SYS_6494" }, /* 6494 */ + { 0, 0, printargs, "SYS_6495" }, /* 6495 */ + { 0, 0, printargs, "SYS_6496" }, /* 6496 */ + { 0, 0, printargs, "SYS_6497" }, /* 6497 */ + { 0, 0, printargs, "SYS_6498" }, /* 6498 */ + { 0, 0, printargs, "SYS_6499" }, /* 6499 */ + { 0, 0, printargs, "SYS_6500" }, /* 6500 */ + { 0, 0, printargs, "SYS_6501" }, /* 6501 */ + { 0, 0, printargs, "SYS_6502" }, /* 6502 */ + { 0, 0, printargs, "SYS_6503" }, /* 6503 */ + { 0, 0, printargs, "SYS_6504" }, /* 6504 */ + { 0, 0, printargs, "SYS_6505" }, /* 6505 */ + { 0, 0, printargs, "SYS_6506" }, /* 6506 */ + { 0, 0, printargs, "SYS_6507" }, /* 6507 */ + { 0, 0, printargs, "SYS_6508" }, /* 6508 */ + { 0, 0, printargs, "SYS_6509" }, /* 6509 */ + { 0, 0, printargs, "SYS_6510" }, /* 6510 */ + { 0, 0, printargs, "SYS_6511" }, /* 6511 */ + { 0, 0, printargs, "SYS_6512" }, /* 6512 */ + { 0, 0, printargs, "SYS_6513" }, /* 6513 */ + { 0, 0, printargs, "SYS_6514" }, /* 6514 */ + { 0, 0, printargs, "SYS_6515" }, /* 6515 */ + { 0, 0, printargs, "SYS_6516" }, /* 6516 */ + { 0, 0, printargs, "SYS_6517" }, /* 6517 */ + { 0, 0, printargs, "SYS_6518" }, /* 6518 */ + { 0, 0, printargs, "SYS_6519" }, /* 6519 */ + { 0, 0, printargs, "SYS_6520" }, /* 6520 */ + { 0, 0, printargs, "SYS_6521" }, /* 6521 */ + { 0, 0, printargs, "SYS_6522" }, /* 6522 */ + { 0, 0, printargs, "SYS_6523" }, /* 6523 */ + { 0, 0, printargs, "SYS_6524" }, /* 6524 */ + { 0, 0, printargs, "SYS_6525" }, /* 6525 */ + { 0, 0, printargs, "SYS_6526" }, /* 6526 */ + { 0, 0, printargs, "SYS_6527" }, /* 6527 */ + { 0, 0, printargs, "SYS_6528" }, /* 6528 */ + { 0, 0, printargs, "SYS_6529" }, /* 6529 */ + { 0, 0, printargs, "SYS_6530" }, /* 6530 */ + { 0, 0, printargs, "SYS_6531" }, /* 6531 */ + { 0, 0, printargs, "SYS_6532" }, /* 6532 */ + { 0, 0, printargs, "SYS_6533" }, /* 6533 */ + { 0, 0, printargs, "SYS_6534" }, /* 6534 */ + { 0, 0, printargs, "SYS_6535" }, /* 6535 */ + { 0, 0, printargs, "SYS_6536" }, /* 6536 */ + { 0, 0, printargs, "SYS_6537" }, /* 6537 */ + { 0, 0, printargs, "SYS_6538" }, /* 6538 */ + { 0, 0, printargs, "SYS_6539" }, /* 6539 */ + { 0, 0, printargs, "SYS_6540" }, /* 6540 */ + { 0, 0, printargs, "SYS_6541" }, /* 6541 */ + { 0, 0, printargs, "SYS_6542" }, /* 6542 */ + { 0, 0, printargs, "SYS_6543" }, /* 6543 */ + { 0, 0, printargs, "SYS_6544" }, /* 6544 */ + { 0, 0, printargs, "SYS_6545" }, /* 6545 */ + { 0, 0, printargs, "SYS_6546" }, /* 6546 */ + { 0, 0, printargs, "SYS_6547" }, /* 6547 */ + { 0, 0, printargs, "SYS_6548" }, /* 6548 */ + { 0, 0, printargs, "SYS_6549" }, /* 6549 */ + { 0, 0, printargs, "SYS_6550" }, /* 6550 */ + { 0, 0, printargs, "SYS_6551" }, /* 6551 */ + { 0, 0, printargs, "SYS_6552" }, /* 6552 */ + { 0, 0, printargs, "SYS_6553" }, /* 6553 */ + { 0, 0, printargs, "SYS_6554" }, /* 6554 */ + { 0, 0, printargs, "SYS_6555" }, /* 6555 */ + { 0, 0, printargs, "SYS_6556" }, /* 6556 */ + { 0, 0, printargs, "SYS_6557" }, /* 6557 */ + { 0, 0, printargs, "SYS_6558" }, /* 6558 */ + { 0, 0, printargs, "SYS_6559" }, /* 6559 */ + { 0, 0, printargs, "SYS_6560" }, /* 6560 */ + { 0, 0, printargs, "SYS_6561" }, /* 6561 */ + { 0, 0, printargs, "SYS_6562" }, /* 6562 */ + { 0, 0, printargs, "SYS_6563" }, /* 6563 */ + { 0, 0, printargs, "SYS_6564" }, /* 6564 */ + { 0, 0, printargs, "SYS_6565" }, /* 6565 */ + { 0, 0, printargs, "SYS_6566" }, /* 6566 */ + { 0, 0, printargs, "SYS_6567" }, /* 6567 */ + { 0, 0, printargs, "SYS_6568" }, /* 6568 */ + { 0, 0, printargs, "SYS_6569" }, /* 6569 */ + { 0, 0, printargs, "SYS_6570" }, /* 6570 */ + { 0, 0, printargs, "SYS_6571" }, /* 6571 */ + { 0, 0, printargs, "SYS_6572" }, /* 6572 */ + { 0, 0, printargs, "SYS_6573" }, /* 6573 */ + { 0, 0, printargs, "SYS_6574" }, /* 6574 */ + { 0, 0, printargs, "SYS_6575" }, /* 6575 */ + { 0, 0, printargs, "SYS_6576" }, /* 6576 */ + { 0, 0, printargs, "SYS_6577" }, /* 6577 */ + { 0, 0, printargs, "SYS_6578" }, /* 6578 */ + { 0, 0, printargs, "SYS_6579" }, /* 6579 */ + { 0, 0, printargs, "SYS_6580" }, /* 6580 */ + { 0, 0, printargs, "SYS_6581" }, /* 6581 */ + { 0, 0, printargs, "SYS_6582" }, /* 6582 */ + { 0, 0, printargs, "SYS_6583" }, /* 6583 */ + { 0, 0, printargs, "SYS_6584" }, /* 6584 */ + { 0, 0, printargs, "SYS_6585" }, /* 6585 */ + { 0, 0, printargs, "SYS_6586" }, /* 6586 */ + { 0, 0, printargs, "SYS_6587" }, /* 6587 */ + { 0, 0, printargs, "SYS_6588" }, /* 6588 */ + { 0, 0, printargs, "SYS_6589" }, /* 6589 */ + { 0, 0, printargs, "SYS_6590" }, /* 6590 */ + { 0, 0, printargs, "SYS_6591" }, /* 6591 */ + { 0, 0, printargs, "SYS_6592" }, /* 6592 */ + { 0, 0, printargs, "SYS_6593" }, /* 6593 */ + { 0, 0, printargs, "SYS_6594" }, /* 6594 */ + { 0, 0, printargs, "SYS_6595" }, /* 6595 */ + { 0, 0, printargs, "SYS_6596" }, /* 6596 */ + { 0, 0, printargs, "SYS_6597" }, /* 6597 */ + { 0, 0, printargs, "SYS_6598" }, /* 6598 */ + { 0, 0, printargs, "SYS_6599" }, /* 6599 */ + { 0, 0, printargs, "SYS_6600" }, /* 6600 */ + { 0, 0, printargs, "SYS_6601" }, /* 6601 */ + { 0, 0, printargs, "SYS_6602" }, /* 6602 */ + { 0, 0, printargs, "SYS_6603" }, /* 6603 */ + { 0, 0, printargs, "SYS_6604" }, /* 6604 */ + { 0, 0, printargs, "SYS_6605" }, /* 6605 */ + { 0, 0, printargs, "SYS_6606" }, /* 6606 */ + { 0, 0, printargs, "SYS_6607" }, /* 6607 */ + { 0, 0, printargs, "SYS_6608" }, /* 6608 */ + { 0, 0, printargs, "SYS_6609" }, /* 6609 */ + { 0, 0, printargs, "SYS_6610" }, /* 6610 */ + { 0, 0, printargs, "SYS_6611" }, /* 6611 */ + { 0, 0, printargs, "SYS_6612" }, /* 6612 */ + { 0, 0, printargs, "SYS_6613" }, /* 6613 */ + { 0, 0, printargs, "SYS_6614" }, /* 6614 */ + { 0, 0, printargs, "SYS_6615" }, /* 6615 */ + { 0, 0, printargs, "SYS_6616" }, /* 6616 */ + { 0, 0, printargs, "SYS_6617" }, /* 6617 */ + { 0, 0, printargs, "SYS_6618" }, /* 6618 */ + { 0, 0, printargs, "SYS_6619" }, /* 6619 */ + { 0, 0, printargs, "SYS_6620" }, /* 6620 */ + { 0, 0, printargs, "SYS_6621" }, /* 6621 */ + { 0, 0, printargs, "SYS_6622" }, /* 6622 */ + { 0, 0, printargs, "SYS_6623" }, /* 6623 */ + { 0, 0, printargs, "SYS_6624" }, /* 6624 */ + { 0, 0, printargs, "SYS_6625" }, /* 6625 */ + { 0, 0, printargs, "SYS_6626" }, /* 6626 */ + { 0, 0, printargs, "SYS_6627" }, /* 6627 */ + { 0, 0, printargs, "SYS_6628" }, /* 6628 */ + { 0, 0, printargs, "SYS_6629" }, /* 6629 */ + { 0, 0, printargs, "SYS_6630" }, /* 6630 */ + { 0, 0, printargs, "SYS_6631" }, /* 6631 */ + { 0, 0, printargs, "SYS_6632" }, /* 6632 */ + { 0, 0, printargs, "SYS_6633" }, /* 6633 */ + { 0, 0, printargs, "SYS_6634" }, /* 6634 */ + { 0, 0, printargs, "SYS_6635" }, /* 6635 */ + { 0, 0, printargs, "SYS_6636" }, /* 6636 */ + { 0, 0, printargs, "SYS_6637" }, /* 6637 */ + { 0, 0, printargs, "SYS_6638" }, /* 6638 */ + { 0, 0, printargs, "SYS_6639" }, /* 6639 */ + { 0, 0, printargs, "SYS_6640" }, /* 6640 */ + { 0, 0, printargs, "SYS_6641" }, /* 6641 */ + { 0, 0, printargs, "SYS_6642" }, /* 6642 */ + { 0, 0, printargs, "SYS_6643" }, /* 6643 */ + { 0, 0, printargs, "SYS_6644" }, /* 6644 */ + { 0, 0, printargs, "SYS_6645" }, /* 6645 */ + { 0, 0, printargs, "SYS_6646" }, /* 6646 */ + { 0, 0, printargs, "SYS_6647" }, /* 6647 */ + { 0, 0, printargs, "SYS_6648" }, /* 6648 */ + { 0, 0, printargs, "SYS_6649" }, /* 6649 */ + { 0, 0, printargs, "SYS_6650" }, /* 6650 */ + { 0, 0, printargs, "SYS_6651" }, /* 6651 */ + { 0, 0, printargs, "SYS_6652" }, /* 6652 */ + { 0, 0, printargs, "SYS_6653" }, /* 6653 */ + { 0, 0, printargs, "SYS_6654" }, /* 6654 */ + { 0, 0, printargs, "SYS_6655" }, /* 6655 */ + { 0, 0, printargs, "SYS_6656" }, /* 6656 */ + { 0, 0, printargs, "SYS_6657" }, /* 6657 */ + { 0, 0, printargs, "SYS_6658" }, /* 6658 */ + { 0, 0, printargs, "SYS_6659" }, /* 6659 */ + { 0, 0, printargs, "SYS_6660" }, /* 6660 */ + { 0, 0, printargs, "SYS_6661" }, /* 6661 */ + { 0, 0, printargs, "SYS_6662" }, /* 6662 */ + { 0, 0, printargs, "SYS_6663" }, /* 6663 */ + { 0, 0, printargs, "SYS_6664" }, /* 6664 */ + { 0, 0, printargs, "SYS_6665" }, /* 6665 */ + { 0, 0, printargs, "SYS_6666" }, /* 6666 */ + { 0, 0, printargs, "SYS_6667" }, /* 6667 */ + { 0, 0, printargs, "SYS_6668" }, /* 6668 */ + { 0, 0, printargs, "SYS_6669" }, /* 6669 */ + { 0, 0, printargs, "SYS_6670" }, /* 6670 */ + { 0, 0, printargs, "SYS_6671" }, /* 6671 */ + { 0, 0, printargs, "SYS_6672" }, /* 6672 */ + { 0, 0, printargs, "SYS_6673" }, /* 6673 */ + { 0, 0, printargs, "SYS_6674" }, /* 6674 */ + { 0, 0, printargs, "SYS_6675" }, /* 6675 */ + { 0, 0, printargs, "SYS_6676" }, /* 6676 */ + { 0, 0, printargs, "SYS_6677" }, /* 6677 */ + { 0, 0, printargs, "SYS_6678" }, /* 6678 */ + { 0, 0, printargs, "SYS_6679" }, /* 6679 */ + { 0, 0, printargs, "SYS_6680" }, /* 6680 */ + { 0, 0, printargs, "SYS_6681" }, /* 6681 */ + { 0, 0, printargs, "SYS_6682" }, /* 6682 */ + { 0, 0, printargs, "SYS_6683" }, /* 6683 */ + { 0, 0, printargs, "SYS_6684" }, /* 6684 */ + { 0, 0, printargs, "SYS_6685" }, /* 6685 */ + { 0, 0, printargs, "SYS_6686" }, /* 6686 */ + { 0, 0, printargs, "SYS_6687" }, /* 6687 */ + { 0, 0, printargs, "SYS_6688" }, /* 6688 */ + { 0, 0, printargs, "SYS_6689" }, /* 6689 */ + { 0, 0, printargs, "SYS_6690" }, /* 6690 */ + { 0, 0, printargs, "SYS_6691" }, /* 6691 */ + { 0, 0, printargs, "SYS_6692" }, /* 6692 */ + { 0, 0, printargs, "SYS_6693" }, /* 6693 */ + { 0, 0, printargs, "SYS_6694" }, /* 6694 */ + { 0, 0, printargs, "SYS_6695" }, /* 6695 */ + { 0, 0, printargs, "SYS_6696" }, /* 6696 */ + { 0, 0, printargs, "SYS_6697" }, /* 6697 */ + { 0, 0, printargs, "SYS_6698" }, /* 6698 */ + { 0, 0, printargs, "SYS_6699" }, /* 6699 */ + { 0, 0, printargs, "SYS_6700" }, /* 6700 */ + { 0, 0, printargs, "SYS_6701" }, /* 6701 */ + { 0, 0, printargs, "SYS_6702" }, /* 6702 */ + { 0, 0, printargs, "SYS_6703" }, /* 6703 */ + { 0, 0, printargs, "SYS_6704" }, /* 6704 */ + { 0, 0, printargs, "SYS_6705" }, /* 6705 */ + { 0, 0, printargs, "SYS_6706" }, /* 6706 */ + { 0, 0, printargs, "SYS_6707" }, /* 6707 */ + { 0, 0, printargs, "SYS_6708" }, /* 6708 */ + { 0, 0, printargs, "SYS_6709" }, /* 6709 */ + { 0, 0, printargs, "SYS_6710" }, /* 6710 */ + { 0, 0, printargs, "SYS_6711" }, /* 6711 */ + { 0, 0, printargs, "SYS_6712" }, /* 6712 */ + { 0, 0, printargs, "SYS_6713" }, /* 6713 */ + { 0, 0, printargs, "SYS_6714" }, /* 6714 */ + { 0, 0, printargs, "SYS_6715" }, /* 6715 */ + { 0, 0, printargs, "SYS_6716" }, /* 6716 */ + { 0, 0, printargs, "SYS_6717" }, /* 6717 */ + { 0, 0, printargs, "SYS_6718" }, /* 6718 */ + { 0, 0, printargs, "SYS_6719" }, /* 6719 */ + { 0, 0, printargs, "SYS_6720" }, /* 6720 */ + { 0, 0, printargs, "SYS_6721" }, /* 6721 */ + { 0, 0, printargs, "SYS_6722" }, /* 6722 */ + { 0, 0, printargs, "SYS_6723" }, /* 6723 */ + { 0, 0, printargs, "SYS_6724" }, /* 6724 */ + { 0, 0, printargs, "SYS_6725" }, /* 6725 */ + { 0, 0, printargs, "SYS_6726" }, /* 6726 */ + { 0, 0, printargs, "SYS_6727" }, /* 6727 */ + { 0, 0, printargs, "SYS_6728" }, /* 6728 */ + { 0, 0, printargs, "SYS_6729" }, /* 6729 */ + { 0, 0, printargs, "SYS_6730" }, /* 6730 */ + { 0, 0, printargs, "SYS_6731" }, /* 6731 */ + { 0, 0, printargs, "SYS_6732" }, /* 6732 */ + { 0, 0, printargs, "SYS_6733" }, /* 6733 */ + { 0, 0, printargs, "SYS_6734" }, /* 6734 */ + { 0, 0, printargs, "SYS_6735" }, /* 6735 */ + { 0, 0, printargs, "SYS_6736" }, /* 6736 */ + { 0, 0, printargs, "SYS_6737" }, /* 6737 */ + { 0, 0, printargs, "SYS_6738" }, /* 6738 */ + { 0, 0, printargs, "SYS_6739" }, /* 6739 */ + { 0, 0, printargs, "SYS_6740" }, /* 6740 */ + { 0, 0, printargs, "SYS_6741" }, /* 6741 */ + { 0, 0, printargs, "SYS_6742" }, /* 6742 */ + { 0, 0, printargs, "SYS_6743" }, /* 6743 */ + { 0, 0, printargs, "SYS_6744" }, /* 6744 */ + { 0, 0, printargs, "SYS_6745" }, /* 6745 */ + { 0, 0, printargs, "SYS_6746" }, /* 6746 */ + { 0, 0, printargs, "SYS_6747" }, /* 6747 */ + { 0, 0, printargs, "SYS_6748" }, /* 6748 */ + { 0, 0, printargs, "SYS_6749" }, /* 6749 */ + { 0, 0, printargs, "SYS_6750" }, /* 6750 */ + { 0, 0, printargs, "SYS_6751" }, /* 6751 */ + { 0, 0, printargs, "SYS_6752" }, /* 6752 */ + { 0, 0, printargs, "SYS_6753" }, /* 6753 */ + { 0, 0, printargs, "SYS_6754" }, /* 6754 */ + { 0, 0, printargs, "SYS_6755" }, /* 6755 */ + { 0, 0, printargs, "SYS_6756" }, /* 6756 */ + { 0, 0, printargs, "SYS_6757" }, /* 6757 */ + { 0, 0, printargs, "SYS_6758" }, /* 6758 */ + { 0, 0, printargs, "SYS_6759" }, /* 6759 */ + { 0, 0, printargs, "SYS_6760" }, /* 6760 */ + { 0, 0, printargs, "SYS_6761" }, /* 6761 */ + { 0, 0, printargs, "SYS_6762" }, /* 6762 */ + { 0, 0, printargs, "SYS_6763" }, /* 6763 */ + { 0, 0, printargs, "SYS_6764" }, /* 6764 */ + { 0, 0, printargs, "SYS_6765" }, /* 6765 */ + { 0, 0, printargs, "SYS_6766" }, /* 6766 */ + { 0, 0, printargs, "SYS_6767" }, /* 6767 */ + { 0, 0, printargs, "SYS_6768" }, /* 6768 */ + { 0, 0, printargs, "SYS_6769" }, /* 6769 */ + { 0, 0, printargs, "SYS_6770" }, /* 6770 */ + { 0, 0, printargs, "SYS_6771" }, /* 6771 */ + { 0, 0, printargs, "SYS_6772" }, /* 6772 */ + { 0, 0, printargs, "SYS_6773" }, /* 6773 */ + { 0, 0, printargs, "SYS_6774" }, /* 6774 */ + { 0, 0, printargs, "SYS_6775" }, /* 6775 */ + { 0, 0, printargs, "SYS_6776" }, /* 6776 */ + { 0, 0, printargs, "SYS_6777" }, /* 6777 */ + { 0, 0, printargs, "SYS_6778" }, /* 6778 */ + { 0, 0, printargs, "SYS_6779" }, /* 6779 */ + { 0, 0, printargs, "SYS_6780" }, /* 6780 */ + { 0, 0, printargs, "SYS_6781" }, /* 6781 */ + { 0, 0, printargs, "SYS_6782" }, /* 6782 */ + { 0, 0, printargs, "SYS_6783" }, /* 6783 */ + { 0, 0, printargs, "SYS_6784" }, /* 6784 */ + { 0, 0, printargs, "SYS_6785" }, /* 6785 */ + { 0, 0, printargs, "SYS_6786" }, /* 6786 */ + { 0, 0, printargs, "SYS_6787" }, /* 6787 */ + { 0, 0, printargs, "SYS_6788" }, /* 6788 */ + { 0, 0, printargs, "SYS_6789" }, /* 6789 */ + { 0, 0, printargs, "SYS_6790" }, /* 6790 */ + { 0, 0, printargs, "SYS_6791" }, /* 6791 */ + { 0, 0, printargs, "SYS_6792" }, /* 6792 */ + { 0, 0, printargs, "SYS_6793" }, /* 6793 */ + { 0, 0, printargs, "SYS_6794" }, /* 6794 */ + { 0, 0, printargs, "SYS_6795" }, /* 6795 */ + { 0, 0, printargs, "SYS_6796" }, /* 6796 */ + { 0, 0, printargs, "SYS_6797" }, /* 6797 */ + { 0, 0, printargs, "SYS_6798" }, /* 6798 */ + { 0, 0, printargs, "SYS_6799" }, /* 6799 */ + { 0, 0, printargs, "SYS_6800" }, /* 6800 */ + { 0, 0, printargs, "SYS_6801" }, /* 6801 */ + { 0, 0, printargs, "SYS_6802" }, /* 6802 */ + { 0, 0, printargs, "SYS_6803" }, /* 6803 */ + { 0, 0, printargs, "SYS_6804" }, /* 6804 */ + { 0, 0, printargs, "SYS_6805" }, /* 6805 */ + { 0, 0, printargs, "SYS_6806" }, /* 6806 */ + { 0, 0, printargs, "SYS_6807" }, /* 6807 */ + { 0, 0, printargs, "SYS_6808" }, /* 6808 */ + { 0, 0, printargs, "SYS_6809" }, /* 6809 */ + { 0, 0, printargs, "SYS_6810" }, /* 6810 */ + { 0, 0, printargs, "SYS_6811" }, /* 6811 */ + { 0, 0, printargs, "SYS_6812" }, /* 6812 */ + { 0, 0, printargs, "SYS_6813" }, /* 6813 */ + { 0, 0, printargs, "SYS_6814" }, /* 6814 */ + { 0, 0, printargs, "SYS_6815" }, /* 6815 */ + { 0, 0, printargs, "SYS_6816" }, /* 6816 */ + { 0, 0, printargs, "SYS_6817" }, /* 6817 */ + { 0, 0, printargs, "SYS_6818" }, /* 6818 */ + { 0, 0, printargs, "SYS_6819" }, /* 6819 */ + { 0, 0, printargs, "SYS_6820" }, /* 6820 */ + { 0, 0, printargs, "SYS_6821" }, /* 6821 */ + { 0, 0, printargs, "SYS_6822" }, /* 6822 */ + { 0, 0, printargs, "SYS_6823" }, /* 6823 */ + { 0, 0, printargs, "SYS_6824" }, /* 6824 */ + { 0, 0, printargs, "SYS_6825" }, /* 6825 */ + { 0, 0, printargs, "SYS_6826" }, /* 6826 */ + { 0, 0, printargs, "SYS_6827" }, /* 6827 */ + { 0, 0, printargs, "SYS_6828" }, /* 6828 */ + { 0, 0, printargs, "SYS_6829" }, /* 6829 */ + { 0, 0, printargs, "SYS_6830" }, /* 6830 */ + { 0, 0, printargs, "SYS_6831" }, /* 6831 */ + { 0, 0, printargs, "SYS_6832" }, /* 6832 */ + { 0, 0, printargs, "SYS_6833" }, /* 6833 */ + { 0, 0, printargs, "SYS_6834" }, /* 6834 */ + { 0, 0, printargs, "SYS_6835" }, /* 6835 */ + { 0, 0, printargs, "SYS_6836" }, /* 6836 */ + { 0, 0, printargs, "SYS_6837" }, /* 6837 */ + { 0, 0, printargs, "SYS_6838" }, /* 6838 */ + { 0, 0, printargs, "SYS_6839" }, /* 6839 */ + { 0, 0, printargs, "SYS_6840" }, /* 6840 */ + { 0, 0, printargs, "SYS_6841" }, /* 6841 */ + { 0, 0, printargs, "SYS_6842" }, /* 6842 */ + { 0, 0, printargs, "SYS_6843" }, /* 6843 */ + { 0, 0, printargs, "SYS_6844" }, /* 6844 */ + { 0, 0, printargs, "SYS_6845" }, /* 6845 */ + { 0, 0, printargs, "SYS_6846" }, /* 6846 */ + { 0, 0, printargs, "SYS_6847" }, /* 6847 */ + { 0, 0, printargs, "SYS_6848" }, /* 6848 */ + { 0, 0, printargs, "SYS_6849" }, /* 6849 */ + { 0, 0, printargs, "SYS_6850" }, /* 6850 */ + { 0, 0, printargs, "SYS_6851" }, /* 6851 */ + { 0, 0, printargs, "SYS_6852" }, /* 6852 */ + { 0, 0, printargs, "SYS_6853" }, /* 6853 */ + { 0, 0, printargs, "SYS_6854" }, /* 6854 */ + { 0, 0, printargs, "SYS_6855" }, /* 6855 */ + { 0, 0, printargs, "SYS_6856" }, /* 6856 */ + { 0, 0, printargs, "SYS_6857" }, /* 6857 */ + { 0, 0, printargs, "SYS_6858" }, /* 6858 */ + { 0, 0, printargs, "SYS_6859" }, /* 6859 */ + { 0, 0, printargs, "SYS_6860" }, /* 6860 */ + { 0, 0, printargs, "SYS_6861" }, /* 6861 */ + { 0, 0, printargs, "SYS_6862" }, /* 6862 */ + { 0, 0, printargs, "SYS_6863" }, /* 6863 */ + { 0, 0, printargs, "SYS_6864" }, /* 6864 */ + { 0, 0, printargs, "SYS_6865" }, /* 6865 */ + { 0, 0, printargs, "SYS_6866" }, /* 6866 */ + { 0, 0, printargs, "SYS_6867" }, /* 6867 */ + { 0, 0, printargs, "SYS_6868" }, /* 6868 */ + { 0, 0, printargs, "SYS_6869" }, /* 6869 */ + { 0, 0, printargs, "SYS_6870" }, /* 6870 */ + { 0, 0, printargs, "SYS_6871" }, /* 6871 */ + { 0, 0, printargs, "SYS_6872" }, /* 6872 */ + { 0, 0, printargs, "SYS_6873" }, /* 6873 */ + { 0, 0, printargs, "SYS_6874" }, /* 6874 */ + { 0, 0, printargs, "SYS_6875" }, /* 6875 */ + { 0, 0, printargs, "SYS_6876" }, /* 6876 */ + { 0, 0, printargs, "SYS_6877" }, /* 6877 */ + { 0, 0, printargs, "SYS_6878" }, /* 6878 */ + { 0, 0, printargs, "SYS_6879" }, /* 6879 */ + { 0, 0, printargs, "SYS_6880" }, /* 6880 */ + { 0, 0, printargs, "SYS_6881" }, /* 6881 */ + { 0, 0, printargs, "SYS_6882" }, /* 6882 */ + { 0, 0, printargs, "SYS_6883" }, /* 6883 */ + { 0, 0, printargs, "SYS_6884" }, /* 6884 */ + { 0, 0, printargs, "SYS_6885" }, /* 6885 */ + { 0, 0, printargs, "SYS_6886" }, /* 6886 */ + { 0, 0, printargs, "SYS_6887" }, /* 6887 */ + { 0, 0, printargs, "SYS_6888" }, /* 6888 */ + { 0, 0, printargs, "SYS_6889" }, /* 6889 */ + { 0, 0, printargs, "SYS_6890" }, /* 6890 */ + { 0, 0, printargs, "SYS_6891" }, /* 6891 */ + { 0, 0, printargs, "SYS_6892" }, /* 6892 */ + { 0, 0, printargs, "SYS_6893" }, /* 6893 */ + { 0, 0, printargs, "SYS_6894" }, /* 6894 */ + { 0, 0, printargs, "SYS_6895" }, /* 6895 */ + { 0, 0, printargs, "SYS_6896" }, /* 6896 */ + { 0, 0, printargs, "SYS_6897" }, /* 6897 */ + { 0, 0, printargs, "SYS_6898" }, /* 6898 */ + { 0, 0, printargs, "SYS_6899" }, /* 6899 */ + { 0, 0, printargs, "SYS_6900" }, /* 6900 */ + { 0, 0, printargs, "SYS_6901" }, /* 6901 */ + { 0, 0, printargs, "SYS_6902" }, /* 6902 */ + { 0, 0, printargs, "SYS_6903" }, /* 6903 */ + { 0, 0, printargs, "SYS_6904" }, /* 6904 */ + { 0, 0, printargs, "SYS_6905" }, /* 6905 */ + { 0, 0, printargs, "SYS_6906" }, /* 6906 */ + { 0, 0, printargs, "SYS_6907" }, /* 6907 */ + { 0, 0, printargs, "SYS_6908" }, /* 6908 */ + { 0, 0, printargs, "SYS_6909" }, /* 6909 */ + { 0, 0, printargs, "SYS_6910" }, /* 6910 */ + { 0, 0, printargs, "SYS_6911" }, /* 6911 */ + { 0, 0, printargs, "SYS_6912" }, /* 6912 */ + { 0, 0, printargs, "SYS_6913" }, /* 6913 */ + { 0, 0, printargs, "SYS_6914" }, /* 6914 */ + { 0, 0, printargs, "SYS_6915" }, /* 6915 */ + { 0, 0, printargs, "SYS_6916" }, /* 6916 */ + { 0, 0, printargs, "SYS_6917" }, /* 6917 */ + { 0, 0, printargs, "SYS_6918" }, /* 6918 */ + { 0, 0, printargs, "SYS_6919" }, /* 6919 */ + { 0, 0, printargs, "SYS_6920" }, /* 6920 */ + { 0, 0, printargs, "SYS_6921" }, /* 6921 */ + { 0, 0, printargs, "SYS_6922" }, /* 6922 */ + { 0, 0, printargs, "SYS_6923" }, /* 6923 */ + { 0, 0, printargs, "SYS_6924" }, /* 6924 */ + { 0, 0, printargs, "SYS_6925" }, /* 6925 */ + { 0, 0, printargs, "SYS_6926" }, /* 6926 */ + { 0, 0, printargs, "SYS_6927" }, /* 6927 */ + { 0, 0, printargs, "SYS_6928" }, /* 6928 */ + { 0, 0, printargs, "SYS_6929" }, /* 6929 */ + { 0, 0, printargs, "SYS_6930" }, /* 6930 */ + { 0, 0, printargs, "SYS_6931" }, /* 6931 */ + { 0, 0, printargs, "SYS_6932" }, /* 6932 */ + { 0, 0, printargs, "SYS_6933" }, /* 6933 */ + { 0, 0, printargs, "SYS_6934" }, /* 6934 */ + { 0, 0, printargs, "SYS_6935" }, /* 6935 */ + { 0, 0, printargs, "SYS_6936" }, /* 6936 */ + { 0, 0, printargs, "SYS_6937" }, /* 6937 */ + { 0, 0, printargs, "SYS_6938" }, /* 6938 */ + { 0, 0, printargs, "SYS_6939" }, /* 6939 */ + { 0, 0, printargs, "SYS_6940" }, /* 6940 */ + { 0, 0, printargs, "SYS_6941" }, /* 6941 */ + { 0, 0, printargs, "SYS_6942" }, /* 6942 */ + { 0, 0, printargs, "SYS_6943" }, /* 6943 */ + { 0, 0, printargs, "SYS_6944" }, /* 6944 */ + { 0, 0, printargs, "SYS_6945" }, /* 6945 */ + { 0, 0, printargs, "SYS_6946" }, /* 6946 */ + { 0, 0, printargs, "SYS_6947" }, /* 6947 */ + { 0, 0, printargs, "SYS_6948" }, /* 6948 */ + { 0, 0, printargs, "SYS_6949" }, /* 6949 */ + { 0, 0, printargs, "SYS_6950" }, /* 6950 */ + { 0, 0, printargs, "SYS_6951" }, /* 6951 */ + { 0, 0, printargs, "SYS_6952" }, /* 6952 */ + { 0, 0, printargs, "SYS_6953" }, /* 6953 */ + { 0, 0, printargs, "SYS_6954" }, /* 6954 */ + { 0, 0, printargs, "SYS_6955" }, /* 6955 */ + { 0, 0, printargs, "SYS_6956" }, /* 6956 */ + { 0, 0, printargs, "SYS_6957" }, /* 6957 */ + { 0, 0, printargs, "SYS_6958" }, /* 6958 */ + { 0, 0, printargs, "SYS_6959" }, /* 6959 */ + { 0, 0, printargs, "SYS_6960" }, /* 6960 */ + { 0, 0, printargs, "SYS_6961" }, /* 6961 */ + { 0, 0, printargs, "SYS_6962" }, /* 6962 */ + { 0, 0, printargs, "SYS_6963" }, /* 6963 */ + { 0, 0, printargs, "SYS_6964" }, /* 6964 */ + { 0, 0, printargs, "SYS_6965" }, /* 6965 */ + { 0, 0, printargs, "SYS_6966" }, /* 6966 */ + { 0, 0, printargs, "SYS_6967" }, /* 6967 */ + { 0, 0, printargs, "SYS_6968" }, /* 6968 */ + { 0, 0, printargs, "SYS_6969" }, /* 6969 */ + { 0, 0, printargs, "SYS_6970" }, /* 6970 */ + { 0, 0, printargs, "SYS_6971" }, /* 6971 */ + { 0, 0, printargs, "SYS_6972" }, /* 6972 */ + { 0, 0, printargs, "SYS_6973" }, /* 6973 */ + { 0, 0, printargs, "SYS_6974" }, /* 6974 */ + { 0, 0, printargs, "SYS_6975" }, /* 6975 */ + { 0, 0, printargs, "SYS_6976" }, /* 6976 */ + { 0, 0, printargs, "SYS_6977" }, /* 6977 */ + { 0, 0, printargs, "SYS_6978" }, /* 6978 */ + { 0, 0, printargs, "SYS_6979" }, /* 6979 */ + { 0, 0, printargs, "SYS_6980" }, /* 6980 */ + { 0, 0, printargs, "SYS_6981" }, /* 6981 */ + { 0, 0, printargs, "SYS_6982" }, /* 6982 */ + { 0, 0, printargs, "SYS_6983" }, /* 6983 */ + { 0, 0, printargs, "SYS_6984" }, /* 6984 */ + { 0, 0, printargs, "SYS_6985" }, /* 6985 */ + { 0, 0, printargs, "SYS_6986" }, /* 6986 */ + { 0, 0, printargs, "SYS_6987" }, /* 6987 */ + { 0, 0, printargs, "SYS_6988" }, /* 6988 */ + { 0, 0, printargs, "SYS_6989" }, /* 6989 */ + { 0, 0, printargs, "SYS_6990" }, /* 6990 */ + { 0, 0, printargs, "SYS_6991" }, /* 6991 */ + { 0, 0, printargs, "SYS_6992" }, /* 6992 */ + { 0, 0, printargs, "SYS_6993" }, /* 6993 */ + { 0, 0, printargs, "SYS_6994" }, /* 6994 */ + { 0, 0, printargs, "SYS_6995" }, /* 6995 */ + { 0, 0, printargs, "SYS_6996" }, /* 6996 */ + { 0, 0, printargs, "SYS_6997" }, /* 6997 */ + { 0, 0, printargs, "SYS_6998" }, /* 6998 */ + { 0, 0, printargs, "SYS_6999" }, /* 6999 */ /* end of Linux N32 */
diff --git a/strace-4.5.20/linux/powerpc/ioctlent.h b/strace-4.5.20/linux/powerpc/ioctlent.h new file mode 100644 index 0000000..16010da --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/powerpc/syscallent.h b/strace-4.5.20/linux/powerpc/syscallent.h new file mode 100644 index 0000000..9de2af6 --- /dev/null +++ b/strace-4.5.20/linux/powerpc/syscallent.h
@@ -0,0 +1,488 @@ +/* + * 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$ + */ + + { 0, 0, sys_restart_syscall, "restart_syscall" }, /* 0 */ + { 1, TP, sys_exit, "exit" }, /* 1 */ + { 0, TP, sys_fork, "fork" }, /* 2 */ + { 3, TD, sys_read, "read" }, /* 3 */ + { 3, TD, sys_write, "write" }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TD, sys_close, "close" }, /* 6 */ + { 3, TP, sys_waitpid, "waitpid" }, /* 7 */ + { 2, TD|TF, sys_creat, "creat" }, /* 8 */ + { 2, TF, sys_link, "link" }, /* 9 */ + { 1, TF, sys_unlink, "unlink" }, /* 10 */ + { 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, TD, 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, TD, sys_dup, "dup" }, /* 41 */ + { 1, TD, sys_pipe, "pipe" }, /* 42 */ + { 1, 0, sys_times, "times" }, /* 43 */ + { 0, 0, sys_prof, "prof" }, /* 44 */ + { 1, 0, sys_brk, "brk" }, /* 45 */ + { 1, 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, TD, sys_ioctl, "ioctl" }, /* 54 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 55 */ + { 0, 0, sys_mpx, "mpx" }, /* 56 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 57 */ + { 2, 0, sys_ulimit, "ulimit" }, /* 58 */ + { 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, TD, 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, TD, sys_oldselect, "oldselect" }, /* 82 */ + { 2, TF, sys_symlink, "symlink" }, /* 83 */ + { 2, TF, sys_oldlstat, "oldlstat" }, /* 84 */ + { 3, TF, sys_readlink, "readlink" }, /* 85 */ + { 1, TF, sys_uselib, "uselib" }, /* 86 */ + { 1, TF, sys_swapon, "swapon" }, /* 87 */ + { 3, 0, sys_reboot, "reboot" }, /* 88 */ + { 3, TD, sys_readdir, "readdir" }, /* 89 */ + { 6, 0, sys_mmap, "mmap" }, /* 90 */ + { 2, 0, sys_munmap, "munmap" }, /* 91 */ + { 2, TF, sys_truncate, "truncate" }, /* 92 */ + { 2, TD, sys_ftruncate, "ftruncate" }, /* 93 */ + { 2, TD, sys_fchmod, "fchmod" }, /* 94 */ + { 3, TD, sys_fchown, "fchown" }, /* 95 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 96 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 97 */ + { 4, 0, sys_profil, "profil" }, /* 98 */ + { 2, TF, sys_statfs, "statfs" }, /* 99 */ + { 2, TD, sys_fstatfs, "fstatfs" }, /* 100 */ + { 3, 0, sys_ioperm, "ioperm" }, /* 101 */ + { 2, TD, sys_socketcall, "socketcall" }, /* 102 */ + { 3, 0, sys_syslog, "syslog" }, /* 103 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 104 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 105 */ + { 2, TF, sys_stat, "stat" }, /* 106 */ + { 2, TF, sys_lstat, "lstat" }, /* 107 */ + { 2, TD, sys_fstat, "fstat" }, /* 108 */ + { 1, 0, sys_olduname, "olduname" }, /* 109 */ + { 5, 0, printargs, "iopl" }, /* 110 */ + { 0, 0, sys_vhangup, "vhangup" }, /* 111 */ + { 0, 0, sys_idle, "idle" }, /* 112 */ + { 5, 0, printargs, "vm86" }, /* 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, TD, 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, "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 */ + { 3, 0, sys_init_module, "init_module" }, /* 128 */ + { 2, 0, sys_delete_module, "delete_module" }, /* 129 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms" }, /* 130 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 131 */ + { 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, TD, sys_getdents, "getdents" }, /* 141 */ + { 5, TD, sys_select, "select" }, /* 142 */ + { 2, TD, sys_flock, "flock" }, /* 143 */ + { 3, 0, sys_msync, "msync" }, /* 144 */ + { 3, TD, sys_readv, "readv" }, /* 145 */ + { 3, TD, sys_writev, "writev" }, /* 146 */ + { 1, 0, sys_getsid, "getsid" }, /* 147 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 148 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */ + { 2, 0, sys_mlock, "mlock" }, /* 150 */ + { 2, 0, sys_munlock, "munlock" }, /* 151 */ + { 1, 0, sys_mlockall, "mlockall" }, /* 152 */ + { 0, 0, sys_munlockall, "munlockall" }, /* 153 */ + { 2, 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 */ + { 5, 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, TD, sys_poll, "poll" }, /* 167 */ + { 3, 0, printargs, "nfsservctl" }, /* 168 */ + { 3, 0, sys_setresgid, "setresgid" }, /* 169 */ + { 3, 0, sys_getresgid, "getresgid" }, /* 170 */ + { 5, 0, sys_prctl, "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, TD, sys_pread, "pread64" }, /* 179 */ + { 6, TD, 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, TD|TN, 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 */ + { 5, TD, sys_readahead, "readahead" }, /* 190 */ + { 6, 0, sys_mmap, "mmap2" }, /* 192 */ + { 4, TF, sys_truncate64, "truncate64" }, /* 193 */ + { 4, TD, sys_ftruncate64, "ftruncate64" }, /* 194 */ + { 2, TF, sys_stat64, "stat64" }, /* 195 */ + { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ + { 2, TD, 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, TD, sys_getdents64, "getdents64" }, /* 202 */ + { 2, TF, sys_pivotroot, "pivot_root" }, /* 203 */ + { 3, TD, 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, TD, 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, TD, sys_fremovexattr, "fremovexattr" }, /* 220 */ + { 6, 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, TD|TN, 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, 0, 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, TD, sys_epoll_ctl, "epoll_ctl" }, /* 237 */ + { 4, TD, 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, TD, sys_fstatfs64, "fstatfs64" }, /* 253 */ + { 6, 0, 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, "migrate_pages" }, /* 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, "kexec_load" }, /* 268 */ + { 5, 0, printargs, "add_key" }, /* 269 */ + { 4, 0, printargs, "request_key" }, /* 270 */ + { 5, 0, printargs, "keyctl" }, /* 271 */ + { 5, TP, sys_waitid, "waitid" }, /* 272 */ + { 3, 0, printargs, "ioprio_set" }, /* 273 */ + { 2, 0, printargs, "ioprio_get" }, /* 274 */ + { 0, TD, printargs, "inotify_init" }, /* 275 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 276 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 277 */ + { 5, 0, printargs, "spu_run" }, /* 278 */ + { 5, 0, printargs, "spu_create" }, /* 279 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 280 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 281 */ + { 1, TP, sys_unshare, "unshare" }, /* 282 */ + { 6, TD, printargs, "splice" }, /* 283 */ + { 4, TD, printargs, "tee" }, /* 284 */ + { 4, TD, printargs, "vmsplice" }, /* 285 */ + { 4, TD|TF, sys_openat, "openat" }, /* 286 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 287 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 288 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 289 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 290 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 291 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 292 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 293 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 294 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 295 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 296 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 297 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 298 */ + { 2, 0, printargs, "set_robust_list" }, /* 299 */ + { 3, 0, printargs, "get_robust_list" }, /* 300 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 301 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 302 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 303 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 304 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 305 */ + { 4, TD, sys_timerfd_create, "timerfd_create" }, /* 306 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 307 */ + { 4, TD, printargs, "sync_file_range" }, /* 308 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 309 */ + { 3, 0, sys_subpage_prot, "subpage_prot" }, /* 310 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime" }, /* 311 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime" }, /* 312 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 313 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 314 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 315 */ + { 3, TD, sys_dup3, "dup3" }, /* 316 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 317 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 318 */ + { 5, TD, printargs, "perf_event_open" }, /* 319 */ + { 5, TD, printargs, "preadv" }, /* 320 */ + { 5, TD, printargs, "pwritev" }, /* 321 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 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 */ + { 5, 0, printargs, "SYS_353" }, /* 353 */ + { 5, 0, printargs, "SYS_354" }, /* 354 */ + { 5, 0, printargs, "SYS_355" }, /* 355 */ + { 5, 0, printargs, "SYS_356" }, /* 356 */ + { 5, 0, printargs, "SYS_357" }, /* 357 */ + { 5, 0, printargs, "SYS_358" }, /* 358 */ + { 5, 0, printargs, "SYS_359" }, /* 359 */ + { 5, 0, printargs, "SYS_360" }, /* 360 */ + { 5, 0, printargs, "SYS_361" }, /* 361 */ + { 5, 0, printargs, "SYS_362" }, /* 362 */ + { 5, 0, printargs, "SYS_363" }, /* 363 */ + { 5, 0, printargs, "SYS_364" }, /* 364 */ + { 5, 0, printargs, "SYS_365" }, /* 365 */ + { 5, 0, printargs, "SYS_366" }, /* 366 */ + { 5, 0, printargs, "SYS_367" }, /* 367 */ + { 5, 0, printargs, "SYS_368" }, /* 368 */ + { 5, 0, printargs, "SYS_369" }, /* 369 */ + { 5, 0, printargs, "SYS_370" }, /* 370 */ + { 5, 0, printargs, "SYS_371" }, /* 371 */ + { 5, 0, printargs, "SYS_372" }, /* 372 */ + { 5, 0, printargs, "SYS_373" }, /* 373 */ + { 5, 0, printargs, "SYS_374" }, /* 374 */ + { 5, 0, printargs, "SYS_375" }, /* 375 */ + { 5, 0, printargs, "SYS_376" }, /* 376 */ + { 5, 0, printargs, "SYS_377" }, /* 377 */ + { 5, 0, printargs, "SYS_378" }, /* 378 */ + { 5, 0, printargs, "SYS_379" }, /* 379 */ + { 5, 0, printargs, "SYS_380" }, /* 380 */ + { 5, 0, printargs, "SYS_381" }, /* 381 */ + { 5, 0, printargs, "SYS_382" }, /* 382 */ + { 5, 0, printargs, "SYS_383" }, /* 383 */ + { 5, 0, printargs, "SYS_384" }, /* 384 */ + { 5, 0, printargs, "SYS_385" }, /* 385 */ + { 5, 0, printargs, "SYS_386" }, /* 386 */ + { 5, 0, printargs, "SYS_387" }, /* 387 */ + { 5, 0, printargs, "SYS_388" }, /* 388 */ + { 5, 0, printargs, "SYS_389" }, /* 389 */ + { 5, 0, printargs, "SYS_390" }, /* 390 */ + { 5, 0, printargs, "SYS_391" }, /* 391 */ + { 5, 0, printargs, "SYS_392" }, /* 392 */ + { 5, 0, printargs, "SYS_393" }, /* 393 */ + { 5, 0, printargs, "SYS_394" }, /* 394 */ + { 5, 0, printargs, "SYS_395" }, /* 395 */ + { 5, 0, printargs, "SYS_396" }, /* 396 */ + { 5, 0, printargs, "SYS_397" }, /* 397 */ + { 5, 0, printargs, "SYS_398" }, /* 398 */ + { 5, 0, printargs, "SYS_399" }, /* 399 */ + +#if SYS_socket_subcall != 400 + #error fix me +#endif + { 8, 0, printargs, "socket_subcall"}, /* 400 */ + { 3, TN, sys_socket, "socket" }, /* 401 */ + { 3, TN, sys_bind, "bind" }, /* 402 */ + { 3, TN, sys_connect, "connect" }, /* 403 */ + { 2, TN, sys_listen, "listen" }, /* 404 */ + { 3, TN, sys_accept, "accept" }, /* 405 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 406 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 407 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 408 */ + { 4, TN, sys_send, "send" }, /* 409 */ + { 4, TN, sys_recv, "recv" }, /* 410 */ + { 6, TN, sys_sendto, "sendto" }, /* 411 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 412 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 413 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 414 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 415 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 416 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 417 */ + { 4, TN, sys_accept4, "accept4" }, /* 418 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 419 */ + +#if SYS_ipc_subcall != 420 + #error fix me +#endif + { 4, 0, printargs, "ipc_subcall" }, /* 420 */ + { 4, TI, sys_semop, "semop" }, /* 421 */ + { 4, TI, sys_semget, "semget" }, /* 422 */ + { 4, TI, sys_semctl, "semctl" }, /* 423 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 424 */ + { 4, 0, printargs, "ipc_subcall" }, /* 425 */ + { 4, 0, printargs, "ipc_subcall" }, /* 426 */ + { 4, 0, printargs, "ipc_subcall" }, /* 427 */ + { 4, 0, printargs, "ipc_subcall" }, /* 428 */ + { 4, 0, printargs, "ipc_subcall" }, /* 429 */ + { 4, 0, printargs, "ipc_subcall" }, /* 430 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 431 */ + { 4, TI, sys_msgrcv, "msgrcv" }, /* 432 */ + { 4, TI, sys_msgget, "msgget" }, /* 433 */ + { 4, TI, sys_msgctl, "msgctl" }, /* 434 */ + { 4, 0, printargs, "ipc_subcall" }, /* 435 */ + { 4, 0, printargs, "ipc_subcall" }, /* 436 */ + { 4, 0, printargs, "ipc_subcall" }, /* 437 */ + { 4, 0, printargs, "ipc_subcall" }, /* 438 */ + { 4, 0, printargs, "ipc_subcall" }, /* 439 */ + { 4, 0, printargs, "ipc_subcall" }, /* 440 */ + { 4, TI, sys_shmat, "shmat" }, /* 441 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 442 */ + { 4, TI, sys_shmget, "shmget" }, /* 443 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 444 */ + { 5, 0, printargs, "SYS_343" }, /* 445 */ + { 5, 0, printargs, "SYS_344" }, /* 446 */ + { 5, 0, printargs, "SYS_345" }, /* 447 */ + { 5, 0, printargs, "SYS_346" }, /* 448 */ + { 5, 0, printargs, "SYS_347" }, /* 449 */
diff --git a/strace-4.5.20/linux/s390/ioctlent.h b/strace-4.5.20/linux/s390/ioctlent.h new file mode 100644 index 0000000..414fbeb --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/s390/syscallent.h b/strace-4.5.20/linux/s390/syscallent.h new file mode 100644 index 0000000..632f166 --- /dev/null +++ b/strace-4.5.20/linux/s390/syscallent.h
@@ -0,0 +1,483 @@ +/* + * 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, TD, sys_read, "read" }, /* 3 */ + { 3, TD, sys_write, "write" }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TD, sys_close, "close" }, /* 6 */ + { 0, 0, sys_restart_syscall, "restart_syscall"}, /* 7 */ + { 2, TD|TF, sys_creat, "creat" }, /* 8 */ + { 2, TF, sys_link, "link" }, /* 9 */ + { 1, TF, sys_unlink, "unlink" }, /* 10 */ + { 3, TF|TP, sys_execve, "execve" }, /* 11 */ + { 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, TD, 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, TD, sys_dup, "dup" }, /* 41 */ + { 1, TD, 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, TD, sys_ioctl, "ioctl" }, /* 54 */ + { 3, TD, 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, TD, 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, TD, sys_readdir, "readdir" }, /* 89 */ + { 6, TD, sys_old_mmap, "mmap" }, /* 90 */ + { 2, 0, sys_munmap, "munmap" }, /* 91 */ + { 2, TF, sys_truncate, "truncate" }, /* 92 */ + { 2, TD, sys_ftruncate, "ftruncate" }, /* 93 */ + { 2, TD, sys_fchmod, "fchmod" }, /* 94 */ + { 3, TD, sys_fchown, "fchown" }, /* 95 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 96 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 97 */ + { -1, 0, printargs, "SYS_98" }, /* 98 */ + { 2, TF, sys_statfs, "statfs" }, /* 99 */ + { 2, TD, sys_fstatfs, "fstatfs" }, /* 100 */ + { 3, 0, sys_ioperm, "ioperm" }, /* 101 */ + { 2, TD, sys_socketcall, "socketcall" }, /* 102 */ + { 3, 0, sys_syslog, "syslog" }, /* 103 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 104 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 105 */ + { 2, TF, sys_stat, "stat" }, /* 106 */ + { 2, TF, sys_lstat, "lstat" }, /* 107 */ + { 2, TD, 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, TD, 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 */ + { 3, 0, sys_init_module, "init_module" }, /* 128 */ + { 2, 0, sys_delete_module, "delete_module" }, /* 129 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 131 */ + { 1, 0, sys_getpgid, "getpgid" }, /* 132 */ + { 1, TD, sys_fchdir, "fchdir" }, /* 133 */ + { 0, 0, sys_bdflush, "bdflush" }, /* 134 */ + { 3, 0, sys_sysfs, "sysfs" }, /* 135 */ + { 1, 0, sys_personality, "personality" }, /* 136 */ + { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ + { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 5, TD, sys_llseek, "_llseek" }, /* 140 */ + { 3, TD, sys_getdents, "getdents" }, /* 141 */ + { 5, TD, sys_select, "select" }, /* 142 */ + { 2, TD, sys_flock, "flock" }, /* 143 */ + { 3, 0, sys_msync, "msync" }, /* 144 */ + { 3, TD, sys_readv, "readv" }, /* 145 */ + { 3, TD, sys_writev, "writev" }, /* 146 */ + { 1, 0, sys_getsid, "getsid" }, /* 147 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 148 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */ + { 2, 0, sys_mlock, "mlock" }, /* 150 */ + { 2, 0, sys_munlock, "munlock" }, /* 151 */ + { 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 */ + { 5, 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, TD, sys_poll, "poll" }, /* 168 */ + { 3, 0, printargs, "nfsservctl" }, /* 169 */ + { 3, 0, sys_setresgid, "setresgid" }, /* 170 */ + { 3, 0, sys_getresgid, "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 */ + { 5, TD, sys_pread, "pread" }, /* 180 */ + { 5, TD, 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, TD|TN, 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, TD, sys_ftruncate64, "ftruncate64" }, /* 194 */ + { 2, TF, sys_stat64, "stat64" }, /* 195 */ + { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ + { 2, TD, 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, TD, 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, TD, sys_getdents64, "getdents64" }, /* 220 */ + { 3, TD, sys_fcntl, "fcntl64" }, /* 221 */ + { 4, TD, sys_readahead, "readahead" }, /* 222 */ + { 4, TD|TN, sys_sendfile64, "sendfile64" }, /* 223 */ + { 5, TF, sys_setxattr, "setxattr" }, /* 224 */ + { 5, TF, sys_setxattr, "lsetxattr" }, /* 225 */ + { 5, TD, 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, TD, sys_fremovexattr, "fremovexattr" }, /* 235 */ + { 0, 0, printargs, "gettid" }, /* 236 */ + { 2, TS, sys_kill, "tkill" }, /* 237 */ + { 6, 0, sys_futex, "futex" }, /* 238 */ + { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 239 */ + { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 240 */ + { 3, TS, sys_tgkill, "tgkill" }, /* 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, TD, sys_epoll_ctl, "epoll_ctl" }, /* 250 */ + { 4, TD, 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, "vserver" }, /* 263 */ + { 5, 0, printargs, "fadvise64_64" }, /* 264 */ + { 3, TF, sys_statfs64, "statfs64" }, /* 265 */ + { 3, TF, sys_fstatfs64, "fstatfs64" }, /* 266 */ + { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 267 */ + { 6, 0, sys_mbind, "mbind" }, /* 268 */ + { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 269 */ + { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 270 */ + { 4, 0, sys_mq_open, "mq_open" }, /* 271 */ + { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 272 */ + { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 273 */ + { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 274 */ + { 2, 0, sys_mq_notify, "mq_notify" }, /* 275 */ + { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 276 */ + { 5, 0, printargs, "kexec_load" }, /* 277 */ + { 5, 0, printargs, "add_key" }, /* 278 */ + { 4, 0, printargs, "request_key" }, /* 279 */ + { 5, 0, printargs, "keyctl" }, /* 280 */ + { 5, TP, sys_waitid, "waitid" }, /* 281 */ + { 3, 0, printargs, "ioprio_set" }, /* 282 */ + { 2, 0, printargs, "ioprio_get" }, /* 283 */ + { 0, TD, printargs, "inotify_init" }, /* 284 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 285 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 286 */ + { 4, 0, printargs, "migrate_pages" }, /* 287 */ + { 4, TD|TF, sys_openat, "openat" }, /* 288 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 289 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 290 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 291 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 292 */ + { 4, TD|TD, sys_newfstatat, "fstatat64" }, /* 293 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 294 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 295 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 296 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 297 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 298 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 299 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 300 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 301 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 302 */ + { 1, TP, sys_unshare, "unshare" }, /* 303 */ + { 2, 0, printargs, "set_robust_list" }, /* 304 */ + { 3, 0, printargs, "get_robust_list" }, /* 305 */ + { 6, TD, printargs, "splice" }, /* 306 */ + { 4, TD, printargs, "sync_file_range" }, /* 307 */ + { 4, TD, printargs, "tee" }, /* 308 */ + { 4, TD, printargs, "vmsplice" }, /* 309 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 310 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 311 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 312 */ + { 2, TF, sys_utimes, "utimes" }, /* 313 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 314 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 315 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 316 */ + { 4, TD, sys_timerfd, "timerfd" }, /* 317 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 318 */ + { 2, TD, sys_timerfd_create, "timerfd_create"}, /* 319 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime"}, /* 320 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime"}, /* 321 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 322 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 323 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 324 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 325 */ + { 3, TD, sys_dup3, "dup3" }, /* 326 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 327 */ + { 5, TD, printargs, "preadv" }, /* 328 */ + { 5, TD, printargs, "pwritev" }, /* 329 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 330 */ + { 5, TD, printargs, "perf_event_open"}, /* 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 */ + { 5, 0, printargs, "SYS_353" }, /* 353 */ + { 5, 0, printargs, "SYS_354" }, /* 354 */ + { 5, 0, printargs, "SYS_355" }, /* 355 */ + { 5, 0, printargs, "SYS_356" }, /* 356 */ + { 5, 0, printargs, "SYS_357" }, /* 357 */ + { 5, 0, printargs, "SYS_358" }, /* 358 */ + { 5, 0, printargs, "SYS_359" }, /* 359 */ + { 5, 0, printargs, "SYS_360" }, /* 360 */ + { 5, 0, printargs, "SYS_361" }, /* 361 */ + { 5, 0, printargs, "SYS_362" }, /* 362 */ + { 5, 0, printargs, "SYS_363" }, /* 363 */ + { 5, 0, printargs, "SYS_364" }, /* 364 */ + { 5, 0, printargs, "SYS_365" }, /* 365 */ + { 5, 0, printargs, "SYS_366" }, /* 366 */ + { 5, 0, printargs, "SYS_367" }, /* 367 */ + { 5, 0, printargs, "SYS_368" }, /* 368 */ + { 5, 0, printargs, "SYS_369" }, /* 369 */ + { 5, 0, printargs, "SYS_370" }, /* 370 */ + { 5, 0, printargs, "SYS_371" }, /* 371 */ + { 5, 0, printargs, "SYS_372" }, /* 372 */ + { 5, 0, printargs, "SYS_373" }, /* 373 */ + { 5, 0, printargs, "SYS_374" }, /* 374 */ + { 5, 0, printargs, "SYS_375" }, /* 375 */ + { 5, 0, printargs, "SYS_376" }, /* 376 */ + { 5, 0, printargs, "SYS_377" }, /* 377 */ + { 5, 0, printargs, "SYS_378" }, /* 378 */ + { 5, 0, printargs, "SYS_379" }, /* 379 */ + { 5, 0, printargs, "SYS_380" }, /* 380 */ + { 5, 0, printargs, "SYS_381" }, /* 381 */ + { 5, 0, printargs, "SYS_382" }, /* 382 */ + { 5, 0, printargs, "SYS_383" }, /* 383 */ + { 5, 0, printargs, "SYS_384" }, /* 384 */ + { 5, 0, printargs, "SYS_385" }, /* 385 */ + { 5, 0, printargs, "SYS_386" }, /* 386 */ + { 5, 0, printargs, "SYS_387" }, /* 387 */ + { 5, 0, printargs, "SYS_388" }, /* 388 */ + { 5, 0, printargs, "SYS_389" }, /* 389 */ + { 5, 0, printargs, "SYS_390" }, /* 390 */ + { 5, 0, printargs, "SYS_391" }, /* 391 */ + { 5, 0, printargs, "SYS_392" }, /* 392 */ + { 5, 0, printargs, "SYS_393" }, /* 393 */ + { 5, 0, printargs, "SYS_394" }, /* 394 */ + { 5, 0, printargs, "SYS_395" }, /* 395 */ + { 5, 0, printargs, "SYS_396" }, /* 396 */ + { 5, 0, printargs, "SYS_397" }, /* 397 */ + { 5, 0, printargs, "SYS_398" }, /* 398 */ + { 5, 0, printargs, "SYS_399" }, /* 399 */ + +#if SYS_socket_subcall != 400 + #error fix me +#endif + { 8, 0, printargs, "socket_subcall"}, /* 400 */ + { 3, TN, sys_socket, "socket" }, /* 401 */ + { 3, TN, sys_bind, "bind" }, /* 402 */ + { 3, TN, sys_connect, "connect" }, /* 403 */ + { 2, TN, sys_listen, "listen" }, /* 404 */ + { 3, TN, sys_accept, "accept" }, /* 405 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 406 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 407 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 408 */ + { 4, TN, sys_send, "send" }, /* 409 */ + { 4, TN, sys_recv, "recv" }, /* 410 */ + { 6, TN, sys_sendto, "sendto" }, /* 411 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 412 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 413 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 414 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 415 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 416 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 417 */ + { 4, TN, sys_accept4, "accept4" }, /* 418 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 419 */ + +#if SYS_ipc_subcall != 420 + #error fix me +#endif + { 4, 0, printargs, "ipc_subcall" }, /* 420 */ + { 4, TI, sys_semop, "semop" }, /* 421 */ + { 4, TI, sys_semget, "semget" }, /* 422 */ + { 4, TI, sys_semctl, "semctl" }, /* 423 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 424 */ + { 4, 0, printargs, "ipc_subcall" }, /* 425 */ + { 4, 0, printargs, "ipc_subcall" }, /* 426 */ + { 4, 0, printargs, "ipc_subcall" }, /* 427 */ + { 4, 0, printargs, "ipc_subcall" }, /* 428 */ + { 4, 0, printargs, "ipc_subcall" }, /* 429 */ + { 4, 0, printargs, "ipc_subcall" }, /* 430 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 431 */ + { 4, TI, sys_msgrcv, "msgrcv" }, /* 432 */ + { 4, TI, sys_msgget, "msgget" }, /* 433 */ + { 4, TI, sys_msgctl, "msgctl" }, /* 434 */ + { 4, 0, printargs, "ipc_subcall" }, /* 435 */ + { 4, 0, printargs, "ipc_subcall" }, /* 436 */ + { 4, 0, printargs, "ipc_subcall" }, /* 437 */ + { 4, 0, printargs, "ipc_subcall" }, /* 438 */ + { 4, 0, printargs, "ipc_subcall" }, /* 439 */ + { 4, 0, printargs, "ipc_subcall" }, /* 440 */ + { 4, TI, sys_shmat, "shmat" }, /* 441 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 442 */ + { 4, TI, sys_shmget, "shmget" }, /* 443 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 444 */
diff --git a/strace-4.5.20/linux/s390x/ioctlent.h b/strace-4.5.20/linux/s390x/ioctlent.h new file mode 100644 index 0000000..414fbeb --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/s390x/syscallent.h b/strace-4.5.20/linux/s390x/syscallent.h new file mode 100644 index 0000000..839232b --- /dev/null +++ b/strace-4.5.20/linux/s390x/syscallent.h
@@ -0,0 +1,482 @@ +/* + * 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, TD, sys_read, "read" }, /* 3 */ + { 3, TD, sys_write, "write" }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TD, sys_close, "close" }, /* 6 */ + { 0, 0, sys_restart_syscall, "restart_syscall"}, /* 7 */ + { 2, TD|TF, sys_creat, "creat" }, /* 8 */ + { 2, TF, sys_link, "link" }, /* 9 */ + { 1, TF, sys_unlink, "unlink" }, /* 10 */ + { 3, TF|TP, sys_execve, "execve" }, /* 11 */ + { 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, TD, 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, TD, sys_dup, "dup" }, /* 41 */ + { 1, TD, 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, TD, sys_ioctl, "ioctl" }, /* 54 */ + { 3, TD, 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, TD, 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, TD, sys_old_mmap, "mmap" }, /* 90 */ + { 2, 0, sys_munmap, "munmap" }, /* 91 */ + { 2, TF, sys_truncate, "truncate" }, /* 92 */ + { 2, TD, sys_ftruncate, "ftruncate" }, /* 93 */ + { 2, TD, 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, TD, sys_fstatfs, "fstatfs" }, /* 100 */ + { -1, 0, printargs, "SYS_101" }, /* 101 */ + { 2, TD, sys_socketcall, "socketcall" }, /* 102 */ + { 3, 0, sys_syslog, "syslog" }, /* 103 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 104 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 105 */ + { 2, TF, sys_stat, "stat" }, /* 106 */ + { 2, TF, sys_lstat, "lstat" }, /* 107 */ + { 2, TD, 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, TD, 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 */ + { 3, 0, sys_init_module, "init_module" }, /* 128 */ + { 2, 0, sys_delete_module, "delete_module" }, /* 129 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 131 */ + { 1, 0, sys_getpgid, "getpgid" }, /* 132 */ + { 1, TD, sys_fchdir, "fchdir" }, /* 133 */ + { 0, 0, sys_bdflush, "bdflush" }, /* 134 */ + { 3, 0, sys_sysfs, "sysfs" }, /* 135 */ + { 1, 0, sys_personality, "personality" }, /* 136 */ + { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ + { -1, 0, printargs, "SYS_138" }, /* 138 */ + { -1, 0, printargs, "SYS_139" }, /* 139 */ + { 5, 0, sys_llseek, "_llseek" }, /* 140 */ + { 3, TD, sys_getdents, "getdents" }, /* 141 */ + { 5, TD, sys_select, "select" }, /* 142 */ + { 2, TD, sys_flock, "flock" }, /* 143 */ + { 3, 0, sys_msync, "msync" }, /* 144 */ + { 3, TD, sys_readv, "readv" }, /* 145 */ + { 3, TD, sys_writev, "writev" }, /* 146 */ + { 1, 0, sys_getsid, "getsid" }, /* 147 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 148 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */ + { 2, 0, sys_mlock, "mlock" }, /* 150 */ + { 2, 0, sys_munlock, "munlock" }, /* 151 */ + { 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 */ + { 5, 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, TD, sys_poll, "poll" }, /* 168 */ + { 3, 0, printargs, "nfsservctl" }, /* 169 */ + { -1, 0, printargs, "SYS_170" }, /* 170 */ + { -1, 0, printargs, "SYS_171" }, /* 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 */ + { 5, TD, sys_pread, "pread" }, /* 180 */ + { 5, TD, 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, TD|TN, 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, TD, 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, TD, sys_getdents64, "getdents64" }, /* 220 */ + { -1, 0, printargs, "SYS_221" }, /* 221 */ + { 4, TD, sys_readahead, "readahead" }, /* 222 */ + { 4, TD|TN, sys_sendfile64, "sendfile64" }, /* 223 */ + { 5, TF, sys_setxattr, "setxattr" }, /* 224 */ + { 5, TF, sys_setxattr, "lsetxattr" }, /* 225 */ + { 5, TD, 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, TD, sys_fremovexattr, "fremovexattr" }, /* 235 */ + { 0, 0, printargs, "gettid" }, /* 236 */ + { 2, TS, sys_kill, "tkill" }, /* 237 */ + { 6, 0, sys_futex, "futex" }, /* 238 */ + { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 239 */ + { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 240 */ + { 3, TS, sys_tgkill, "tgkill" }, /* 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, TD, sys_epoll_ctl, "epoll_ctl" }, /* 250 */ + { 4, TD, 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, "vserver" }, /* 263 */ + { 6, TF, sys_fadvise64_64, "fadvise64_64" }, /* 264 */ + { 3, TF, sys_statfs64, "statfs64" }, /* 265 */ + { 3, TF, sys_fstatfs64, "fstatfs64" }, /* 266 */ + { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 267 */ + { 6, 0, sys_mbind, "mbind" }, /* 268 */ + { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 269 */ + { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 270 */ + { 4, 0, sys_mq_open, "mq_open" }, /* 271 */ + { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 272 */ + { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 273 */ + { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 274 */ + { 2, 0, sys_mq_notify, "mq_notify" }, /* 275 */ + { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 276 */ + { 5, 0, printargs, "kexec_load" }, /* 277 */ + { 5, 0, printargs, "add_key" }, /* 278 */ + { 4, 0, printargs, "request_key" }, /* 279 */ + { 5, 0, printargs, "keyctl" }, /* 280 */ + { 5, TP, sys_waitid, "waitid" }, /* 281 */ + { 3, 0, printargs, "ioprio_set" }, /* 282 */ + { 2, 0, printargs, "ioprio_get" }, /* 283 */ + { 0, TD, printargs, "inotify_init" }, /* 284 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 285 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 286 */ + { 4, 0, printargs, "migrate_pages" }, /* 287 */ + { 4, TD|TF, sys_openat, "openat" }, /* 288 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 289 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 290 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 291 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 292 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 293 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 294 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 295 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 296 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 297 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 298 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 299 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 300 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 301 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 302 */ + { 1, TP, sys_unshare, "unshare" }, /* 303 */ + { 2, 0, printargs, "set_robust_list" }, /* 304 */ + { 3, 0, printargs, "get_robust_list" }, /* 305 */ + { 6, TD, printargs, "splice" }, /* 306 */ + { 4, TD, printargs, "sync_file_range" }, /* 307 */ + { 4, TD, printargs, "tee" }, /* 308 */ + { 4, TD, printargs, "vmsplice" }, /* 309 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 310 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 311 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 312 */ + { 2, TF, sys_utimes, "utimes" }, /* 313 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 314 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 315 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 316 */ + { 4, TD, sys_timerfd, "timerfd" }, /* 317 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 318 */ + { 2, TD, sys_timerfd_create, "timerfd_create"}, /* 319 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime"}, /* 320 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime"}, /* 321 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 322 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 323 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 324 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 325 */ + { 3, TD, sys_dup3, "dup3" }, /* 326 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 327 */ + { 5, TD, printargs, "preadv" }, /* 328 */ + { 5, TD, printargs, "pwritev" }, /* 329 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 330 */ + { 5, TD, printargs, "perf_event_open"}, /* 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 */ + { 5, 0, printargs, "SYS_353" }, /* 353 */ + { 5, 0, printargs, "SYS_354" }, /* 354 */ + { 5, 0, printargs, "SYS_355" }, /* 355 */ + { 5, 0, printargs, "SYS_356" }, /* 356 */ + { 5, 0, printargs, "SYS_357" }, /* 357 */ + { 5, 0, printargs, "SYS_358" }, /* 358 */ + { 5, 0, printargs, "SYS_359" }, /* 359 */ + { 5, 0, printargs, "SYS_360" }, /* 360 */ + { 5, 0, printargs, "SYS_361" }, /* 361 */ + { 5, 0, printargs, "SYS_362" }, /* 362 */ + { 5, 0, printargs, "SYS_363" }, /* 363 */ + { 5, 0, printargs, "SYS_364" }, /* 364 */ + { 5, 0, printargs, "SYS_365" }, /* 365 */ + { 5, 0, printargs, "SYS_366" }, /* 366 */ + { 5, 0, printargs, "SYS_367" }, /* 367 */ + { 5, 0, printargs, "SYS_368" }, /* 368 */ + { 5, 0, printargs, "SYS_369" }, /* 369 */ + { 5, 0, printargs, "SYS_370" }, /* 370 */ + { 5, 0, printargs, "SYS_371" }, /* 371 */ + { 5, 0, printargs, "SYS_372" }, /* 372 */ + { 5, 0, printargs, "SYS_373" }, /* 373 */ + { 5, 0, printargs, "SYS_374" }, /* 374 */ + { 5, 0, printargs, "SYS_375" }, /* 375 */ + { 5, 0, printargs, "SYS_376" }, /* 376 */ + { 5, 0, printargs, "SYS_377" }, /* 377 */ + { 5, 0, printargs, "SYS_378" }, /* 378 */ + { 5, 0, printargs, "SYS_379" }, /* 379 */ + { 5, 0, printargs, "SYS_380" }, /* 380 */ + { 5, 0, printargs, "SYS_381" }, /* 381 */ + { 5, 0, printargs, "SYS_382" }, /* 382 */ + { 5, 0, printargs, "SYS_383" }, /* 383 */ + { 5, 0, printargs, "SYS_384" }, /* 384 */ + { 5, 0, printargs, "SYS_385" }, /* 385 */ + { 5, 0, printargs, "SYS_386" }, /* 386 */ + { 5, 0, printargs, "SYS_387" }, /* 387 */ + { 5, 0, printargs, "SYS_388" }, /* 388 */ + { 5, 0, printargs, "SYS_389" }, /* 389 */ + { 5, 0, printargs, "SYS_390" }, /* 390 */ + { 5, 0, printargs, "SYS_391" }, /* 391 */ + { 5, 0, printargs, "SYS_392" }, /* 392 */ + { 5, 0, printargs, "SYS_393" }, /* 393 */ + { 5, 0, printargs, "SYS_394" }, /* 394 */ + { 5, 0, printargs, "SYS_395" }, /* 395 */ + { 5, 0, printargs, "SYS_396" }, /* 396 */ + { 5, 0, printargs, "SYS_397" }, /* 397 */ + { 5, 0, printargs, "SYS_398" }, /* 398 */ + { 5, 0, printargs, "SYS_399" }, /* 399 */ + +#if SYS_socket_subcall != 400 + #error fix me +#endif + { 8, 0, printargs, "socket_subcall"}, /* 400 */ + { 3, TN, sys_socket, "socket" }, /* 401 */ + { 3, TN, sys_bind, "bind" }, /* 402 */ + { 3, TN, sys_connect, "connect" }, /* 403 */ + { 2, TN, sys_listen, "listen" }, /* 404 */ + { 3, TN, sys_accept, "accept" }, /* 405 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 406 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 407 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 408 */ + { 4, TN, sys_send, "send" }, /* 409 */ + { 4, TN, sys_recv, "recv" }, /* 410 */ + { 6, TN, sys_sendto, "sendto" }, /* 411 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 412 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 413 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 414 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 415 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 416 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 417 */ + { 4, TN, sys_accept4, "accept4" }, /* 418 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 419 */ + +#if SYS_ipc_subcall != 420 + #error fix me +#endif + { 4, 0, printargs, "ipc_subcall" }, /* 420 */ + { 4, TI, sys_semop, "semop" }, /* 421 */ + { 4, TI, sys_semget, "semget" }, /* 422 */ + { 4, TI, sys_semctl, "semctl" }, /* 423 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 424 */ + { 4, 0, printargs, "ipc_subcall" }, /* 425 */ + { 4, 0, printargs, "ipc_subcall" }, /* 426 */ + { 4, 0, printargs, "ipc_subcall" }, /* 427 */ + { 4, 0, printargs, "ipc_subcall" }, /* 428 */ + { 4, 0, printargs, "ipc_subcall" }, /* 429 */ + { 4, 0, printargs, "ipc_subcall" }, /* 430 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 431 */ + { 4, TI, sys_msgrcv, "msgrcv" }, /* 432 */ + { 4, TI, sys_msgget, "msgget" }, /* 433 */ + { 4, TI, sys_msgctl, "msgctl" }, /* 434 */ + { 4, 0, printargs, "ipc_subcall" }, /* 435 */ + { 4, 0, printargs, "ipc_subcall" }, /* 436 */ + { 4, 0, printargs, "ipc_subcall" }, /* 437 */ + { 4, 0, printargs, "ipc_subcall" }, /* 438 */ + { 4, 0, printargs, "ipc_subcall" }, /* 439 */ + { 4, 0, printargs, "ipc_subcall" }, /* 440 */ + { 4, TI, sys_shmat, "shmat" }, /* 441 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 442 */ + { 4, TI, sys_shmget, "shmget" }, /* 443 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 444 */
diff --git a/strace-4.5.20/linux/sh/ioctlent.h b/strace-4.5.20/linux/sh/ioctlent.h new file mode 100644 index 0000000..ef8bc7b --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/sh/syscallent.h b/strace-4.5.20/linux/sh/syscallent.h new file mode 100644 index 0000000..2291131 --- /dev/null +++ b/strace-4.5.20/linux/sh/syscallent.h
@@ -0,0 +1,488 @@ +/* + * 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$ + */ + + { 0, 0, sys_restart_syscall, "restart_syscall"}, /* 0 */ + { 1, TP, sys_exit, "_exit" }, /* 1 */ + { 0, TP, sys_fork, "fork" }, /* 2 */ + { 3, TD, sys_read, "read" }, /* 3 */ + { 3, TD, sys_write, "write" }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TD, sys_close, "close" }, /* 6 */ + { 3, TP, sys_waitpid, "waitpid" }, /* 7 */ + { 2, TD|TF, sys_creat, "creat" }, /* 8 */ + { 2, TF, sys_link, "link" }, /* 9 */ + { 1, TF, sys_unlink, "unlink" }, /* 10 */ + { 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, TD, 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, TD, 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, TD, sys_dup, "dup" }, /* 41 */ + { 1, TD, sys_pipe, "pipe" }, /* 42 */ + { 1, 0, sys_times, "times" }, /* 43 */ + { 0, 0, sys_prof, "prof" }, /* 44 */ + { 1, 0, sys_brk, "brk" }, /* 45 */ + { 1, 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, TD, sys_ioctl, "ioctl" }, /* 54 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 55 */ + { 0, 0, sys_mpx, "mpx" }, /* 56 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 57 */ + { 2, 0, sys_ulimit, "ulimit" }, /* 58 */ + { 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, TD, 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, TD, sys_oldselect, "oldselect" }, /* 82 */ + { 2, TF, sys_symlink, "symlink" }, /* 83 */ + { 2, TF, sys_oldlstat, "oldlstat" }, /* 84 */ + { 3, TF, sys_readlink, "readlink" }, /* 85 */ + { 1, TF, sys_uselib, "uselib" }, /* 86 */ + { 1, TF, sys_swapon, "swapon" }, /* 87 */ + { 3, 0, sys_reboot, "reboot" }, /* 88 */ + { 3, TD, sys_readdir, "readdir" }, /* 89 */ + { 6, TD, sys_old_mmap, "old_mmap" }, /* 90 */ + { 2, 0, sys_munmap, "munmap" }, /* 91 */ + { 2, TF, sys_truncate, "truncate" }, /* 92 */ + { 2, TD, sys_ftruncate, "ftruncate" }, /* 93 */ + { 2, TD, sys_fchmod, "fchmod" }, /* 94 */ + { 3, TD, sys_fchown, "fchown" }, /* 95 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 96 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 97 */ + { 4, 0, sys_profil, "profil" }, /* 98 */ + { 2, TF, sys_statfs, "statfs" }, /* 99 */ + { 2, TD, sys_fstatfs, "fstatfs" }, /* 100 */ + { 3, 0, sys_ioperm, "ioperm" }, /* 101 */ + { 2, TD, sys_socketcall, "socketcall" }, /* 102 */ + { 3, 0, sys_syslog, "syslog" }, /* 103 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 104 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 105 */ + { 2, TF, sys_stat, "stat" }, /* 106 */ + { 2, TF, sys_lstat, "lstat" }, /* 107 */ + { 2, TD, 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, TD, 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, "cacheflush" }, /* 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 */ + { 3, 0, sys_init_module, "init_module" }, /* 128 */ + { 2, 0, sys_delete_module, "delete_module" }, /* 129 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 131 */ + { 1, 0, sys_getpgid, "getpgid" }, /* 132 */ + { 1, TD, sys_fchdir, "fchdir" }, /* 133 */ + { 0, 0, sys_bdflush, "bdflush" }, /* 134 */ + { 3, 0, sys_sysfs, "sysfs" }, /* 135 */ + { 1, 0, sys_personality, "personality" }, /* 136 */ + { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ + { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 5, TD, sys_llseek, "_llseek" }, /* 140 */ + { 3, TD, sys_getdents, "getdents" }, /* 141 */ + { 5, TD, sys_select, "select" }, /* 142 */ + { 2, TD, sys_flock, "flock" }, /* 143 */ + { 3, 0, sys_msync, "msync" }, /* 144 */ + { 3, TD, sys_readv, "readv" }, /* 145 */ + { 3, TD, sys_writev, "writev" }, /* 146 */ + { 1, 0, sys_getsid, "getsid" }, /* 147 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 148 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */ + { 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 */ + { 5, 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, TD, sys_poll, "poll" }, /* 168 */ + { 3, 0, printargs, "nfsservctl" }, /* 169 */ + { 3, 0, sys_setresgid, "setresgid" }, /* 170 */ + { 3, 0, sys_getresgid, "getresgid" }, /* 171 */ + { 5, 0, sys_prctl, "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, TD, sys_pread, "pread" }, /* 180 */ + { 6, TD, 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, TD|TN, 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, TD, sys_ftruncate64, "ftruncate64" }, /* 194 */ + { 2, TF, sys_stat64, "stat64" }, /* 195 */ + { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ + { 2, TD, 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 */ + { 3, TD, sys_getdents64, "getdents64" }, /* 220 */ + { 3, TD, sys_fcntl, "fcntl64" }, /* 221 */ + { 4, 0, printargs, "SYS_222" }, /* 222 */ + { 4, 0, printargs, "SYS_223" }, /* 223 */ + { 4, 0, printargs, "gettid" }, /* 224 */ + { 5, TD, sys_readahead, "readahead" }, /* 225 */ + { 5, TF, sys_setxattr, "setxattr" }, /* 226 */ + { 5, TF, sys_setxattr, "lsetxattr" }, /* 227 */ + { 5, TD, 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, TD, sys_fremovexattr, "fremovexattr" }, /* 237 */ + { 2, TD, sys_kill, "tkill" }, /* 238 */ + { 5, TD|TN, sys_sendfile64, "sendfile64" }, /* 239 */ + { 6, 0, sys_futex, "futex" }, /* 240 */ + { 3, 0, sys_sched_setaffinity, "sched_setaffinity"}, /* 241 */ + { 3, 0, sys_sched_getaffinity, "sched_getaffinity"}, /* 242 */ + { 0, 0, printargs, "SYS_243" }, /* 243 */ + { 0, 0, printargs, "SYS_244" }, /* 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, 0, sys_fadvise64, "fadvise64" }, /* 250 */ + { 0, 0, printargs, "SYS_251" }, /* 251 */ + { 1, TP, sys_exit, "exit_group" }, /* 252 */ + { 4, 0, printargs, "lookup_dcookie"}, /* 253 */ + { 1, 0, sys_epoll_create, "epoll_create" }, /* 254 */ + { 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 255 */ + { 3, TD, 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 */ + { 2, TD, sys_fstatfs64, "fstatfs64" }, /* 269 */ + { 3, TS, sys_tgkill, "tgkill" }, /* 270 */ + { 2, TF, sys_utimes, "utimes" }, /* 271 */ + { 6, 0, sys_fadvise64_64, "fadvise64_64" }, /* 272 */ + { 0, 0, printargs, "SYS_273" }, /* 273 */ + { 4, 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, "kexec_load" }, /* 283 */ + { 5, TP, sys_waitid, "waitid" }, /* 284 */ + { 5, 0, printargs, "add_key" }, /* 285 */ + { 4, 0, printargs, "request_key" }, /* 286 */ + { 5, 0, printargs, "keyctl" }, /* 287 */ + { 3, 0, printargs, "ioprio_set" }, /* 288 */ + { 2, 0, printargs, "ioprio_get" }, /* 289 */ + { 0, TD, printargs, "inotify_init" }, /* 290 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch"}, /* 291 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch"}, /* 292 */ + { 5, 0, printargs, "SYS_293" }, /* 293 */ + { 4, 0, printargs, "migrate_pages" }, /* 294 */ + { 4, TD|TF, sys_openat, "openat" }, /* 295 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 296 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 297 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 298 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 299 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 300 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 301 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 302 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 303 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 304 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 305 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 306 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 307 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 308 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 309 */ + { 1, TP, sys_unshare, "unshare" }, /* 310 */ + { 2, 0, printargs, "set_robust_list"}, /* 311 */ + { 3, 0, printargs, "get_robust_list"}, /* 312 */ + { 6, TD, printargs, "splice" }, /* 313 */ + { 4, TD, printargs, "sync_file_range"}, /* 314 */ + { 4, TD, printargs, "tee" }, /* 315 */ + { 5, TD, printargs, "vmsplice" }, /* 316 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 317 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 318 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 319 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 320 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 321 */ + { 4, TD, sys_timerfd, "timerfd" }, /* 322 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 323 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 324 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime"}, /* 325 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime"}, /* 326 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 327 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 328 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 329 */ + { 3, TD, sys_dup3, "dup3" }, /* 330 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 331 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 332 */ + { 5, TD, printargs, "preadv" }, /* 333 */ + { 5, TD, printargs, "pwritev" }, /* 334 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 335 */ + { 5, TD, printargs, "perf_event_open"}, /* 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 */ + { 5, 0, printargs, "SYS_353" }, /* 353 */ + { 5, 0, printargs, "SYS_354" }, /* 354 */ + { 5, 0, printargs, "SYS_355" }, /* 355 */ + { 5, 0, printargs, "SYS_356" }, /* 356 */ + { 5, 0, printargs, "SYS_357" }, /* 357 */ + { 5, 0, printargs, "SYS_358" }, /* 358 */ + { 5, 0, printargs, "SYS_359" }, /* 359 */ + { 5, 0, printargs, "SYS_360" }, /* 360 */ + { 5, 0, printargs, "SYS_361" }, /* 361 */ + { 5, 0, printargs, "SYS_362" }, /* 362 */ + { 5, 0, printargs, "SYS_363" }, /* 363 */ + { 5, 0, printargs, "SYS_364" }, /* 364 */ + { 5, 0, printargs, "SYS_365" }, /* 365 */ + { 5, 0, printargs, "SYS_366" }, /* 366 */ + { 5, 0, printargs, "SYS_367" }, /* 367 */ + { 5, 0, printargs, "SYS_368" }, /* 368 */ + { 5, 0, printargs, "SYS_369" }, /* 369 */ + { 5, 0, printargs, "SYS_370" }, /* 370 */ + { 5, 0, printargs, "SYS_371" }, /* 371 */ + { 5, 0, printargs, "SYS_372" }, /* 372 */ + { 5, 0, printargs, "SYS_373" }, /* 373 */ + { 5, 0, printargs, "SYS_374" }, /* 374 */ + { 5, 0, printargs, "SYS_375" }, /* 375 */ + { 5, 0, printargs, "SYS_376" }, /* 376 */ + { 5, 0, printargs, "SYS_377" }, /* 377 */ + { 5, 0, printargs, "SYS_378" }, /* 378 */ + { 5, 0, printargs, "SYS_379" }, /* 379 */ + { 5, 0, printargs, "SYS_380" }, /* 380 */ + { 5, 0, printargs, "SYS_381" }, /* 381 */ + { 5, 0, printargs, "SYS_382" }, /* 382 */ + { 5, 0, printargs, "SYS_383" }, /* 383 */ + { 5, 0, printargs, "SYS_384" }, /* 384 */ + { 5, 0, printargs, "SYS_385" }, /* 385 */ + { 5, 0, printargs, "SYS_386" }, /* 386 */ + { 5, 0, printargs, "SYS_387" }, /* 387 */ + { 5, 0, printargs, "SYS_388" }, /* 388 */ + { 5, 0, printargs, "SYS_389" }, /* 389 */ + { 5, 0, printargs, "SYS_390" }, /* 390 */ + { 5, 0, printargs, "SYS_391" }, /* 391 */ + { 5, 0, printargs, "SYS_392" }, /* 392 */ + { 5, 0, printargs, "SYS_393" }, /* 393 */ + { 5, 0, printargs, "SYS_394" }, /* 394 */ + { 5, 0, printargs, "SYS_395" }, /* 395 */ + { 5, 0, printargs, "SYS_396" }, /* 396 */ + { 5, 0, printargs, "SYS_397" }, /* 397 */ + { 5, 0, printargs, "SYS_398" }, /* 398 */ + { 5, 0, printargs, "SYS_399" }, /* 399 */ + +#if SYS_socket_subcall != 400 + #error fix me +#endif + { 8, 0, printargs, "socket_subcall"}, /* 400 */ + { 3, TN, sys_socket, "socket" }, /* 401 */ + { 3, TN, sys_bind, "bind" }, /* 402 */ + { 3, TN, sys_connect, "connect" }, /* 403 */ + { 2, TN, sys_listen, "listen" }, /* 404 */ + { 3, TN, sys_accept, "accept" }, /* 405 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 406 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 407 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 408 */ + { 4, TN, sys_send, "send" }, /* 409 */ + { 4, TN, sys_recv, "recv" }, /* 410 */ + { 6, TN, sys_sendto, "sendto" }, /* 411 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 412 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 413 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 414 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 415 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 416 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 417 */ + { 4, TN, sys_accept4, "accept4" }, /* 418 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 419 */ + +#if SYS_ipc_subcall != 420 + #error fix me +#endif + + { 4, 0, printargs, "ipc_subcall" }, /* 420 */ + { 4, TI, sys_semop, "semop" }, /* 421 */ + { 4, TI, sys_semget, "semget" }, /* 422 */ + { 4, TI, sys_semctl, "semctl" }, /* 423 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 424 */ + { 4, 0, printargs, "ipc_subcall" }, /* 425 */ + { 4, 0, printargs, "ipc_subcall" }, /* 426 */ + { 4, 0, printargs, "ipc_subcall" }, /* 427 */ + { 4, 0, printargs, "ipc_subcall" }, /* 428 */ + { 4, 0, printargs, "ipc_subcall" }, /* 429 */ + { 4, 0, printargs, "ipc_subcall" }, /* 430 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 431 */ + { 4, TI, sys_msgrcv, "msgrcv" }, /* 432 */ + { 4, TI, sys_msgget, "msgget" }, /* 433 */ + { 4, TI, sys_msgctl, "msgctl" }, /* 434 */ + { 4, 0, printargs, "ipc_subcall" }, /* 435 */ + { 4, 0, printargs, "ipc_subcall" }, /* 436 */ + { 4, 0, printargs, "ipc_subcall" }, /* 437 */ + { 4, 0, printargs, "ipc_subcall" }, /* 438 */ + { 4, 0, printargs, "ipc_subcall" }, /* 439 */ + { 4, 0, printargs, "ipc_subcall" }, /* 440 */ + { 4, TI, sys_shmat, "shmat" }, /* 441 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 442 */ + { 4, TI, sys_shmget, "shmget" }, /* 443 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 444 */
diff --git a/strace-4.5.20/linux/sh64/syscallent.h b/strace-4.5.20/linux/sh64/syscallent.h new file mode 100644 index 0000000..7b72852 --- /dev/null +++ b/strace-4.5.20/linux/sh64/syscallent.h
@@ -0,0 +1,459 @@ +/* + * 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$ + */ + + { 0, 0, sys_setup, "setup" }, /* 0 */ + { 1, TP, sys_exit, "_exit" }, /* 1 */ + { 0, TP, sys_fork, "fork" }, /* 2 */ + { 3, TD, sys_read, "read" }, /* 3 */ + { 3, TD, sys_write, "write" }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TD, sys_close, "close" }, /* 6 */ + { 3, TP, sys_waitpid, "waitpid" }, /* 7 */ + { 2, TD|TF, sys_creat, "creat" }, /* 8 */ + { 2, TF, sys_link, "link" }, /* 9 */ + { 1, TF, sys_unlink, "unlink" }, /* 10 */ + { 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, TD, 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, TD, 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, TD, sys_dup, "dup" }, /* 41 */ + { 1, TD, sys_pipe, "pipe" }, /* 42 */ + { 1, 0, sys_times, "times" }, /* 43 */ + { 0, 0, sys_prof, "prof" }, /* 44 */ + { 1, 0, sys_brk, "brk" }, /* 45 */ + { 1, 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, TD, sys_ioctl, "ioctl" }, /* 54 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 55 */ + { 0, 0, sys_mpx, "mpx" }, /* 56 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 57 */ + { 2, 0, sys_ulimit, "ulimit" }, /* 58 */ + { 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, TD, 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, TD, sys_oldselect, "oldselect" }, /* 82 */ + { 2, TF, sys_symlink, "symlink" }, /* 83 */ + { 2, TF, sys_oldlstat, "oldlstat" }, /* 84 */ + { 3, TF, sys_readlink, "readlink" }, /* 85 */ + { 1, TF, sys_uselib, "uselib" }, /* 86 */ + { 1, TF, sys_swapon, "swapon" }, /* 87 */ + { 3, 0, sys_reboot, "reboot" }, /* 88 */ + { 3, TD, sys_readdir, "readdir" }, /* 89 */ + { 6, TD, sys_old_mmap, "old_mmap" }, /* 90 */ + { 2, 0, sys_munmap, "munmap" }, /* 91 */ + { 2, TF, sys_truncate, "truncate" }, /* 92 */ + { 2, TD, sys_ftruncate, "ftruncate" }, /* 93 */ + { 2, TD, sys_fchmod, "fchmod" }, /* 94 */ + { 3, TD, sys_fchown, "fchown" }, /* 95 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 96 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 97 */ + { 4, 0, sys_profil, "profil" }, /* 98 */ + { 2, TF, sys_statfs, "statfs" }, /* 99 */ + { 2, TD, sys_fstatfs, "fstatfs" }, /* 100 */ + { 3, 0, sys_ioperm, "ioperm" }, /* 101 */ + { 2, TD, sys_socketcall, "socketcall" }, /* 102 */ + { 3, 0, sys_syslog, "syslog" }, /* 103 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 104 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 105 */ + { 2, TF, sys_stat, "stat" }, /* 106 */ + { 2, TF, sys_lstat, "lstat" }, /* 107 */ + { 2, TD, 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, TD, 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, "cacheflush" }, /* 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 */ + { 3, 0, sys_init_module, "init_module" }, /* 128 */ + { 2, 0, sys_delete_module, "delete_module" }, /* 129 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 131 */ + { 1, 0, sys_getpgid, "getpgid" }, /* 132 */ + { 1, TD, sys_fchdir, "fchdir" }, /* 133 */ + { 0, 0, sys_bdflush, "bdflush" }, /* 134 */ + { 3, 0, sys_sysfs, "sysfs" }, /* 135 */ + { 1, 0, sys_personality, "personality" }, /* 136 */ + { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */ + { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 5, TD, sys_llseek, "_llseek" }, /* 140 */ + { 3, TD, sys_getdents, "getdents" }, /* 141 */ + { 5, TD, sys_select, "select" }, /* 142 */ + { 2, TD, sys_flock, "flock" }, /* 143 */ + { 3, 0, sys_msync, "msync" }, /* 144 */ + { 3, TD, sys_readv, "readv" }, /* 145 */ + { 3, TD, sys_writev, "writev" }, /* 146 */ + { 1, 0, sys_getsid, "getsid" }, /* 147 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 148 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */ + { 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 */ + { 5, 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, TD, sys_poll, "poll" }, /* 168 */ + { 3, 0, printargs, "nfsservctl" }, /* 169 */ + { 3, 0, sys_setresgid, "setresgid" }, /* 170 */ + { 3, 0, sys_getresgid, "getresgid" }, /* 171 */ + { 5, 0, sys_prctl, "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, TD, sys_pread, "pread" }, /* 180 */ + { 5, TD, 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, TD|TN, 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, TD, sys_ftruncate64, "ftruncate64" }, /* 194 */ + { 2, TF, sys_stat64, "stat64" }, /* 195 */ + { 2, TF, sys_lstat64, "lstat64" }, /* 196 */ + { 2, TD, 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 */ + { 3, TD, sys_getdents64, "getdents64" }, /* 248 */ + { 3, TD, sys_fcntl, "fcntl64" }, /* 249 */ + { 4, 0, printargs, "SYS_250" }, /* 250 */ + { 4, 0, printargs, "SYS_251" }, /* 251 */ + { 4, 0, printargs, "gettid" }, /* 252 */ + { 5, TD, sys_readahead, "readahead" }, /* 253 */ + { 5, TF, sys_setxattr, "setxattr" }, /* 254 */ + { 5, TF, sys_setxattr, "lsetxattr" }, /* 255 */ + { 5, TD, sys_fsetxattr, "fsetxattr" }, /* 256 */ + { 4, TF, sys_getxattr, "getxattr" }, /* 257 */ + { 4, TF, sys_getxattr, "lgetxattr" }, /* 258 */ + { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 259 */ + { 3, TF, sys_listxattr, "listxattr" }, /* 260 */ + { 3, TF, sys_listxattr, "llistxattr" }, /* 261 */ + { 3, 0, sys_flistxattr, "flistxattr" }, /* 262 */ + { 2, TF, sys_removexattr, "removexattr" }, /* 263 */ + { 2, TF, sys_removexattr, "lremovexattr" }, /* 264 */ + { 2, TD, sys_fremovexattr, "fremovexattr" }, /* 265 */ + { 2, TD, sys_kill, "tkill" }, /* 266 */ + { 5, TD|TN, sys_sendfile64, "sendfile64" }, /* 267 */ + { 6, 0, sys_futex, "futex" }, /* 268 */ + { 3, 0, sys_sched_setaffinity, "sched_setaffinity"}, /* 269 */ + { 3, 0, sys_sched_getaffinity, "sched_getaffinity"}, /* 270 */ + { 5, 0, printargs, "SYS_271" }, /* 271 */ + { 5, 0, printargs, "SYS_272" }, /* 272 */ + { 2, 0, sys_io_setup, "io_setup" }, /* 273 */ + { 1, 0, sys_io_destroy, "io_destroy" }, /* 274 */ + { 5, 0, sys_io_getevents, "io_getevents" }, /* 275 */ + { 3, 0, sys_io_submit, "io_submit" }, /* 276 */ + { 3, 0, sys_io_cancel, "io_cancel" }, /* 277 */ + { 5, 0, sys_fadvise64, "fadvise64" }, /* 278 */ + { 5, 0, printargs, "SYS_279" }, /* 279 */ + { 1, TP, sys_exit, "exit_group" }, /* 280 */ + { 4, 0, printargs, "lookup_dcookie"}, /* 281 */ + { 1, 0, sys_epoll_create, "epoll_create" }, /* 282 */ + { 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 283 */ + { 3, TD, sys_epoll_wait, "epoll_wait" }, /* 284 */ + { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 285 */ + { 1, 0, printargs, "set_tid_address"}, /* 286 */ + { 3, 0, sys_timer_create, "timer_create" }, /* 287 */ + { 4, 0, sys_timer_settime, "timer_settime" }, /* 288 */ + { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 289 */ + { 1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 290 */ + { 1, 0, sys_timer_delete, "timer_delete" }, /* 291 */ + { 2, 0, sys_clock_settime, "clock_settime" }, /* 292 */ + { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 293 */ + { 2, 0, sys_clock_getres, "clock_getres" }, /* 294 */ + { 4, 0, sys_clock_nanosleep, "clock_nanosleep"}, /* 295 */ + { 3, TF, sys_statfs64, "statfs64" }, /* 296 */ + { 2, TD, sys_fstatfs64, "fstatfs64" }, /* 297 */ + { 3, TS, sys_tgkill, "tgkill" }, /* 298 */ + { 2, TF, sys_utimes, "utimes" }, /* 299 */ + { 6, 0, sys_fadvise64_64, "fadvise64_64" }, /* 300 */ + { 0, 0, printargs, "SYS_301" }, /* 301 */ + { 4, 0, sys_mbind, "mbind" }, /* 302 */ + { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 303 */ + { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 304 */ + { 4, 0, sys_mq_open, "mq_open" }, /* 305 */ + { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 306 */ + { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 307 */ + { 5, 0, sys_mq_timedreceive, "mq_timedreceive"}, /* 308 */ + { 2, 0, sys_mq_notify, "mq_notify" }, /* 309 */ + { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 310 */ + { 5, 0, printargs, "kexec_load" }, /* 311 */ + { 5, TP, sys_waitid, "waitid" }, /* 312 */ + { 5, 0, printargs, "add_key" }, /* 313 */ + { 4, 0, printargs, "request_key" }, /* 314 */ + { 5, 0, printargs, "keyctl" }, /* 315 */ + { 3, 0, printargs, "ioprio_set" }, /* 316 */ + { 2, 0, printargs, "ioprio_get" }, /* 317 */ + { 0, TD, printargs, "inotify_init" }, /* 318 */ + { 3, TD, printargs, "inotify_add_watch"}, /* 319 */ + { 2, TD, printargs, "inotify_rm_watch"}, /* 320 */ + { 5, 0, printargs, "SYS_321" }, /* 321 */ + { 4, 0, printargs, "migrate_pages" }, /* 322 */ + { 4, TD|TF, sys_openat, "openat" }, /* 323 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 324 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 325 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 326 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 327 */ + { 4, TD|TF, sys_newfstatat, "newfstatat" }, /* 328 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 329 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 330 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 331 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 332 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 333 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 334 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 335 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 336 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 337 */ + { 1, TP, sys_unshare, "unshare" }, /* 338 */ + { 2, 0, printargs, "set_robust_list"}, /* 339 */ + { 3, 0, printargs, "get_robust_list"}, /* 340 */ + { 6, TD, printargs, "splice" }, /* 341 */ + { 4, TD, printargs, "sync_file_range"}, /* 342 */ + { 4, TD, printargs, "tee" }, /* 343 */ + { 5, TD, printargs, "vmsplice" }, /* 344 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 345 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 346 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 347 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 348 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 349 */ + { 4, TD, sys_timerfd, "timerfd" }, /* 350 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 351 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 352 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime"}, /* 353 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime"}, /* 354 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 355 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 356 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 357 */ + { 3, TD, sys_dup3, "dup3" }, /* 358 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 359 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 360 */ + { 5, TD, printargs, "preadv" }, /* 361 */ + { 5, TD, printargs, "pwritev" }, /* 362 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 363 */ + { 5, TD, printargs, "perf_event_open"}, /* 364 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 365 */ + { 4, TN, sys_accept4, "accept4" }, /* 366 */ + { 5, 0, printargs, "SYS_367" }, /* 367 */ + { 5, 0, printargs, "SYS_368" }, /* 368 */ + { 5, 0, printargs, "SYS_369" }, /* 369 */ + { 5, 0, printargs, "SYS_370" }, /* 370 */ + { 5, 0, printargs, "SYS_371" }, /* 371 */ + { 5, 0, printargs, "SYS_372" }, /* 372 */ + { 5, 0, printargs, "SYS_373" }, /* 373 */ + { 5, 0, printargs, "SYS_374" }, /* 374 */ + { 5, 0, printargs, "SYS_375" }, /* 375 */ + { 5, 0, printargs, "SYS_376" }, /* 376 */ + { 5, 0, printargs, "SYS_377" }, /* 377 */ + { 5, 0, printargs, "SYS_378" }, /* 378 */ + { 5, 0, printargs, "SYS_379" }, /* 379 */ + { 5, 0, printargs, "SYS_380" }, /* 380 */ + { 5, 0, printargs, "SYS_381" }, /* 381 */ + { 5, 0, printargs, "SYS_382" }, /* 382 */ + { 5, 0, printargs, "SYS_383" }, /* 383 */ + { 5, 0, printargs, "SYS_384" }, /* 384 */ + { 5, 0, printargs, "SYS_385" }, /* 385 */ + { 5, 0, printargs, "SYS_386" }, /* 386 */ + { 5, 0, printargs, "SYS_387" }, /* 387 */ + { 5, 0, printargs, "SYS_388" }, /* 388 */ + { 5, 0, printargs, "SYS_389" }, /* 389 */ + { 5, 0, printargs, "SYS_390" }, /* 390 */ + { 5, 0, printargs, "SYS_391" }, /* 391 */ + { 5, 0, printargs, "SYS_392" }, /* 392 */ + { 5, 0, printargs, "SYS_393" }, /* 393 */ + { 5, 0, printargs, "SYS_394" }, /* 394 */ + { 5, 0, printargs, "SYS_395" }, /* 395 */ + { 5, 0, printargs, "SYS_396" }, /* 396 */ + { 5, 0, printargs, "SYS_397" }, /* 397 */ + { 5, 0, printargs, "SYS_398" }, /* 398 */ + { 5, 0, printargs, "SYS_399" }, /* 399 */ + +#if SYS_socket_subcall != 400 + #error fix me +#endif + { 8, 0, printargs, "socket_subcall"}, /* 400 */ + { 3, TN, sys_socket, "socket" }, /* 401 */ + { 3, TN, sys_bind, "bind" }, /* 402 */ + { 3, TN, sys_connect, "connect" }, /* 403 */ + { 2, TN, sys_listen, "listen" }, /* 404 */ + { 3, TN, sys_accept, "accept" }, /* 405 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 406 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 407 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 408 */ + { 4, TN, sys_send, "send" }, /* 409 */ + { 4, TN, sys_recv, "recv" }, /* 410 */ + { 6, TN, sys_sendto, "sendto" }, /* 411 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 412 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 413 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 414 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 415 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 416 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 417 */ + { 4, TN, sys_accept4, "accept4" }, /* 418 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 419 */ + +#if SYS_ipc_subcall != 420 + #error fix me +#endif + { 4, 0, printargs, "ipc_subcall" }, /* 420 */
diff --git a/strace-4.5.20/linux/signalent.h b/strace-4.5.20/linux/signalent.h new file mode 100644 index 0000000..112f746 --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/sparc/dummy2.h b/strace-4.5.20/linux/sparc/dummy2.h new file mode 100644 index 0000000..8ff464b --- /dev/null +++ b/strace-4.5.20/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$ + */ + +/* 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-4.5.20/linux/sparc/errnoent.h b/strace-4.5.20/linux/sparc/errnoent.h new file mode 100644 index 0000000..d243699 --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/sparc/errnoent1.h b/strace-4.5.20/linux/sparc/errnoent1.h new file mode 100644 index 0000000..4d750bd --- /dev/null +++ b/strace-4.5.20/linux/sparc/errnoent1.h
@@ -0,0 +1 @@ +#include "../svr4/errnoent.h"
diff --git a/strace-4.5.20/linux/sparc/gen.pl b/strace-4.5.20/linux/sparc/gen.pl new file mode 100644 index 0000000..8c2f75b --- /dev/null +++ b/strace-4.5.20/linux/sparc/gen.pl
@@ -0,0 +1,37 @@ +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, "../i386/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-4.5.20/linux/sparc/ioctlent.h b/strace-4.5.20/linux/sparc/ioctlent.h new file mode 100644 index 0000000..c1d6b8a --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/sparc/ioctlent1.h b/strace-4.5.20/linux/sparc/ioctlent1.h new file mode 100644 index 0000000..5d536cf --- /dev/null +++ b/strace-4.5.20/linux/sparc/ioctlent1.h
@@ -0,0 +1 @@ +#include "../svr4/ioctlent.h"
diff --git a/strace-4.5.20/linux/sparc/signalent.h b/strace-4.5.20/linux/sparc/signalent.h new file mode 100644 index 0000000..e059b5d --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/sparc/signalent1.h b/strace-4.5.20/linux/sparc/signalent1.h new file mode 100644 index 0000000..6be7a26 --- /dev/null +++ b/strace-4.5.20/linux/sparc/signalent1.h
@@ -0,0 +1 @@ +#include "../svr4/signalent.h"
diff --git a/strace-4.5.20/linux/sparc/syscall.h b/strace-4.5.20/linux/sparc/syscall.h new file mode 100644 index 0000000..03e3a71 --- /dev/null +++ b/strace-4.5.20/linux/sparc/syscall.h
@@ -0,0 +1,257 @@ +/* + * 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$ + */ +#include "dummy.h" + +int sys_restart_syscall(); +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(); +int sys_semtimedop(); + +/* 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(),sys_accept4(); +int sys_recvmmsg(); + +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_setgroups32(), sys_getgroups32(); + +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(), sys_nanosleep(); +int sys_timer_create(), sys_timer_settime(), sys_timer_gettime(); + +int sys_io_setup(), sys_io_destroy(), sys_io_submit(), sys_io_cancel(), sys_io_getevents(); +int sys_mq_open(), sys_mq_unlink(), sys_mq_timedsend(), sys_mq_timedreceive(), sys_mq_notify(), sys_mq_getsetattr(); +int sys_waitid(); +int sys_openat(), sys_mkdirat(), sys_mknodat(), sys_fchownat(), sys_futimesat(), sys_newfstatat(), sys_unlinkat(), sys_renameat(), sys_linkat(), sys_symlinkat(), sys_readlinkat(), sys_fchmodat(), sys_faccessat(); +int sys_pselect6(), sys_ppoll(); +int sys_unshare(); +int sys_move_pages(), sys_getcpu(); +int sys_epoll_pwait(); +int sys_signalfd(), sys_timerfd(), sys_eventfd(); + +# define SYS_socket_subcall 353 +#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_sub_accept4 (SYS_socket_subcall + 18) +#define SYS_sub_recvmmsg (SYS_socket_subcall + 19) + +#define SYS_socket_nsubcalls 20 + +#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 + +#include "syscall1.h"
diff --git a/strace-4.5.20/linux/sparc/syscall.h.2 b/strace-4.5.20/linux/sparc/syscall.h.2 new file mode 100644 index 0000000..19d3b4a --- /dev/null +++ b/strace-4.5.20/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$ + */ + +#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-4.5.20/linux/sparc/syscall1.h b/strace-4.5.20/linux/sparc/syscall1.h new file mode 100644 index 0000000..a4d7af3 --- /dev/null +++ b/strace-4.5.20/linux/sparc/syscall1.h
@@ -0,0 +1,500 @@ +/* + * 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$ + */ + +#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-4.5.20/linux/sparc/syscallent.h b/strace-4.5.20/linux/sparc/syscallent.h new file mode 100644 index 0000000..8df80c8 --- /dev/null +++ b/strace-4.5.20/linux/sparc/syscallent.h
@@ -0,0 +1,408 @@ + { 0, 0, sys_restart_syscall, "restart_syscall" },/* 0 */ + { 1, TP, sys_exit, "exit" }, /* 1 */ + { 0, TP, sys_fork, "fork" }, /* 2 */ + { 3, TD, sys_read, "read" }, /* 3 */ + { 3, TD, sys_write, "write" }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TD, sys_close, "close" }, /* 6 */ + { 4, TP, sys_wait4, "wait4" }, /* 7 */ + { 2, TD|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, TD, 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, TD, 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, TD|TN, sys_sendfile, "sendfile" }, /* 39 */ + { 2, TF, sys_lstat, "lstat" }, /* 40 */ + { 2, TD, sys_dup, "dup" }, /* 41 */ + { 0, TD, 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, TD, 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, TD, sys_fstat, "fstat" }, /* 62 */ + { 2, TD, sys_fstat64, "fstat64" }, /* 63 */ + { 0, 0, sys_getpagesize,"getpagesize" }, /* 64 */ + { 3, 0, sys_msync, "msync" }, /* 65 */ + { 0, TP, sys_vfork, "vfork" }, /* 66 */ + { 5, TD, sys_pread, "pread" }, /* 67 */ + { 5, TD, 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_setgroups32,"setgroups32" }, /* 82 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 83 */ + { 2, TD, 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, TD, sys_dup2, "dup2" }, /* 90 */ + { 1, 0, sys_setfsuid, "setfsuid32" }, /* 91 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 92 */ + { 5, TD, sys_select, "select" }, /* 93 */ + { 1, 0, sys_setfsgid, "setfsgid32" }, /* 94 */ + { 1, TD, 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_getgroups32,"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, TD, sys_readv, "readv" }, /* 120 */ + { 3, TD, sys_writev, "writev" }, /* 121 */ + { 2, 0, sys_settimeofday,"settimeofday" }, /* 122 */ + { 3, TD, sys_fchown, "fchown" }, /* 123 */ + { 2, TD, 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, TD, sys_ftruncate, "ftruncate" }, /* 130 */ + { 2, TD, 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, TD|TN, sys_sendfile64, "sendfile64" }, /* 140 */ + { 3, TN, sys_getpeername,"getpeername" }, /* 141 */ + { 6, 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, TD, sys_poll, "poll" }, /* 153 */ + { 3, TD, sys_getdents64, "getdents64" }, /* 154 */ + { 3, TD, sys_fcntl, "fcntl64" }, /* 155 */ + { 4, 0, printargs, "getdirentries" }, /* 156 */ + { 2, TF, sys_statfs, "statfs" }, /* 157 */ + { 2, TD, 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, TD, sys_fsetxattr, "fsetxattr" }, /* 171 */ + { 4, TF, sys_getxattr, "getxattr" }, /* 172 */ + { 4, TF, sys_getxattr, "lgetxattr" }, /* 173 */ + { 3, TD, sys_getdents, "getdents" }, /* 174 */ + { 0, 0, sys_setsid, "setsid" }, /* 175 */ + { 1, TD, 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, TD, sys_fremovexattr,"fremovexattr" }, /* 186 */ + { 2, TS, sys_kill, "tkill" }, /* 187 */ + { 1, TP, sys_exit, "exit_group" }, /* 188 */ + { 1, 0, sys_uname, "uname" }, /* 189 */ + { 3, 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, TD, sys_epoll_ctl, "epoll_ctl" }, /* 194 */ + { 4, TD, 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, TD, sys_readdir, "readdir" }, /* 204 */ + { 4, TD, sys_readahead, "readahead" }, /* 205 */ + { 2, TD, 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 */ + { 2, 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, TD, 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, TD, sys_fstatfs64, "fstatfs64" }, /* 235 */ + { 5, TD, 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 */ + { 5, 0, sys_mremap, "mremap" }, /* 250 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 251 */ + { 1, 0, sys_getsid, "getsid" }, /* 252 */ + { 1, TD, 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 */ + { 2, 0, sys_io_setup, "io_setup" }, /* 268 */ + { 1, 0, sys_io_destroy, "io_destroy" }, /* 269 */ + { 3, 0, sys_io_submit, "io_submit" }, /* 270 */ + { 3, 0, sys_io_cancel, "io_cancel" }, /* 271 */ + { 5, 0, sys_io_getevents, "io_getevents" }, /* 272 */ + { 4, 0, sys_mq_open, "mq_open" }, /* 273 */ + { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 274 */ + { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 275 */ + { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 276 */ + { 2, 0, sys_mq_notify, "mq_notify" }, /* 277 */ + { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 278 */ + { 5, TP, sys_waitid, "waitid" }, /* 279 */ + { 4, TD, printargs, "tee" }, /* 280 */ + { 5, 0, printargs, "add_key" }, /* 281 */ + { 4, 0, printargs, "request_key" }, /* 282 */ + { 5, 0, printargs, "keyctl" }, /* 283 */ + { 4, TD|TF, sys_openat, "openat" }, /* 284 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 285 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 286 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 287 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 288 */ + { 4, TD|TD, sys_newfstatat, "fstatat64" }, /* 289 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 290 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 291 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 292 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 293 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 294 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 295 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 296 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 297 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 298 */ + { 1, TP, sys_unshare, "unshare" }, /* 299 */ + { 2, 0, printargs, "set_robust_list" }, /* 300 */ + { 3, 0, printargs, "get_robust_list" }, /* 301 */ + { 4, 0, printargs, "migrate_pages" }, /* 302 */ + { 6, 0, sys_mbind, "mbind" }, /* 303 */ + { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 304 */ + { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 305 */ + { 5, 0, printargs, "kexec_load" }, /* 306 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 307 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 308 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 309 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 310 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 311 */ + { 2, TD, sys_timerfd_create, "timerfd_create"}, /* 312 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 313 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 314 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime"}, /* 315 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime"}, /* 316 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 317 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 318 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 319 */ + { 3, TD, sys_dup3, "dup3" }, /* 320 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 321 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 322 */ + { 4, TN, sys_accept4, "accept4" }, /* 323 */ + { 5, TD, printargs, "preadv" }, /* 324 */ + { 5, TD, printargs, "pwritev" }, /* 325 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 326 */ + { 5, TD, printargs, "perf_event_open"}, /* 327 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 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 */ +#if SYS_socket_subcall != 353 + #error fix me +#endif + { 8, 0, printargs, "socket_subcall"}, /* 353 */ + { 3, TN, sys_socket, "socket" }, /* 354 */ + { 3, TN, sys_bind, "bind" }, /* 355 */ + { 3, TN, sys_connect, "connect" }, /* 356 */ + { 2, TN, sys_listen, "listen" }, /* 357 */ + { 3, TN, sys_accept, "accept" }, /* 358 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 359 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 360 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 361 */ + { 4, TN, sys_send, "send" }, /* 362 */ + { 4, TN, sys_recv, "recv" }, /* 363 */ + { 6, TN, sys_sendto, "sendto" }, /* 364 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 365 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 366 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 367 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 368 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 369 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 370 */ + { 4, TN, sys_accept4, "accept4" }, /* 371 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 372 */ +#if SYS_ipc_subcall != 373 + #error fix me +#endif + { 4, 0, printargs, "ipc_subcall" }, /* 373 */ + { 4, TI, printargs, "semop" }, /* 374 */ + { 4, TI, sys_semget, "semget" }, /* 375 */ + { 4, TI, sys_semctl, "semctl" }, /* 376 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 377 */ + { 4, 0, printargs, "ipc_subcall" }, /* 378 */ + { 4, 0, printargs, "ipc_subcall" }, /* 379 */ + { 4, 0, printargs, "ipc_subcall" }, /* 380 */ + { 4, 0, printargs, "ipc_subcall" }, /* 381 */ + { 4, 0, printargs, "ipc_subcall" }, /* 382 */ + { 4, 0, printargs, "ipc_subcall" }, /* 383 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 384 */ + { 4, TI, sys_msgrcv, "msgrcv" }, /* 385 */ + { 4, TI, sys_msgget, "msgget" }, /* 386 */ + { 4, TI, sys_msgctl, "msgctl" }, /* 387 */ + { 4, 0, printargs, "ipc_subcall" }, /* 388 */ + { 4, 0, printargs, "ipc_subcall" }, /* 389 */ + { 4, 0, printargs, "ipc_subcall" }, /* 390 */ + { 4, 0, printargs, "ipc_subcall" }, /* 391 */ + { 4, 0, printargs, "ipc_subcall" }, /* 392 */ + { 4, 0, printargs, "ipc_subcall" }, /* 393 */ + { 4, TI, sys_shmat, "shmat" }, /* 394 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 395 */ + { 4, TI, sys_shmget, "shmget" }, /* 396 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 397 */ + { 5, 0, printargs, "SYS_397" }, /* 398 */ + { 5, 0, printargs, "SYS_398" }, /* 399 */ + { 5, 0, printargs, "SYS_399" }, /* 400 */ + { 5, 0, printargs, "SYS_400" }, /* 401 */
diff --git a/strace-4.5.20/linux/sparc/syscallent1.h b/strace-4.5.20/linux/sparc/syscallent1.h new file mode 100644 index 0000000..821b3a9 --- /dev/null +++ b/strace-4.5.20/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$ + */ + + { 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-4.5.20/linux/sparc64/dummy2.h b/strace-4.5.20/linux/sparc64/dummy2.h new file mode 100644 index 0000000..8ff464b --- /dev/null +++ b/strace-4.5.20/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$ + */ + +/* 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-4.5.20/linux/sparc64/errnoent.h b/strace-4.5.20/linux/sparc64/errnoent.h new file mode 100644 index 0000000..d243699 --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/sparc64/errnoent1.h b/strace-4.5.20/linux/sparc64/errnoent1.h new file mode 100644 index 0000000..4d750bd --- /dev/null +++ b/strace-4.5.20/linux/sparc64/errnoent1.h
@@ -0,0 +1 @@ +#include "../svr4/errnoent.h"
diff --git a/strace-4.5.20/linux/sparc64/errnoent2.h b/strace-4.5.20/linux/sparc64/errnoent2.h new file mode 100644 index 0000000..d243699 --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/sparc64/ioctlent.h b/strace-4.5.20/linux/sparc64/ioctlent.h new file mode 100644 index 0000000..c1d6b8a --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/sparc64/ioctlent1.h b/strace-4.5.20/linux/sparc64/ioctlent1.h new file mode 100644 index 0000000..5d536cf --- /dev/null +++ b/strace-4.5.20/linux/sparc64/ioctlent1.h
@@ -0,0 +1 @@ +#include "../svr4/ioctlent.h"
diff --git a/strace-4.5.20/linux/sparc64/ioctlent2.h b/strace-4.5.20/linux/sparc64/ioctlent2.h new file mode 100644 index 0000000..c1d6b8a --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/sparc64/signalent.h b/strace-4.5.20/linux/sparc64/signalent.h new file mode 100644 index 0000000..e059b5d --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/sparc64/signalent1.h b/strace-4.5.20/linux/sparc64/signalent1.h new file mode 100644 index 0000000..6be7a26 --- /dev/null +++ b/strace-4.5.20/linux/sparc64/signalent1.h
@@ -0,0 +1 @@ +#include "../svr4/signalent.h"
diff --git a/strace-4.5.20/linux/sparc64/signalent2.h b/strace-4.5.20/linux/sparc64/signalent2.h new file mode 100644 index 0000000..e059b5d --- /dev/null +++ b/strace-4.5.20/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-4.5.20/linux/sparc64/syscall.h b/strace-4.5.20/linux/sparc64/syscall.h new file mode 100644 index 0000000..b56e08d --- /dev/null +++ b/strace-4.5.20/linux/sparc64/syscall.h
@@ -0,0 +1 @@ +#include "../sparc/syscall.h"
diff --git a/strace-4.5.20/linux/sparc64/syscall1.h b/strace-4.5.20/linux/sparc64/syscall1.h new file mode 100644 index 0000000..a4d7af3 --- /dev/null +++ b/strace-4.5.20/linux/sparc64/syscall1.h
@@ -0,0 +1,500 @@ +/* + * 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$ + */ + +#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-4.5.20/linux/sparc64/syscallent.h b/strace-4.5.20/linux/sparc64/syscallent.h new file mode 100644 index 0000000..776b5f1 --- /dev/null +++ b/strace-4.5.20/linux/sparc64/syscallent.h
@@ -0,0 +1 @@ +#include "../sparc/syscallent.h"
diff --git a/strace-4.5.20/linux/sparc64/syscallent1.h b/strace-4.5.20/linux/sparc64/syscallent1.h new file mode 100644 index 0000000..821d77c --- /dev/null +++ b/strace-4.5.20/linux/sparc64/syscallent1.h
@@ -0,0 +1 @@ +#include "../sparc/syscallent1.h"
diff --git a/strace-4.5.20/linux/sparc64/syscallent2.h b/strace-4.5.20/linux/sparc64/syscallent2.h new file mode 100644 index 0000000..776b5f1 --- /dev/null +++ b/strace-4.5.20/linux/sparc64/syscallent2.h
@@ -0,0 +1 @@ +#include "../sparc/syscallent.h"
diff --git a/strace-4.5.20/linux/syscall.h b/strace-4.5.20/linux/syscall.h new file mode 100644 index 0000000..6bfed87 --- /dev/null +++ b/strace-4.5.20/linux/syscall.h
@@ -0,0 +1,337 @@ +/* + * 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$ + */ + +#include "dummy.h" + +/* primary syscalls */ + +int sys_restart_syscall(); +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(), sys_move_pages(); +int sys_arch_prctl(); +int sys_io_setup(), sys_io_submit(), sys_io_cancel(), sys_io_getevents(), sys_io_destroy(); +int sys_utimensat(), sys_epoll_pwait(), sys_signalfd(), sys_timerfd(), sys_eventfd(); +int sys_getcpu(); +int sys_fallocate(), sys_timerfd_create(), sys_timerfd_settime(), sys_timerfd_gettime(); +int sys_signalfd4(), sys_eventfd2(), sys_epoll_create1(), sys_dup3(), sys_pipe2(); + +/* sys_socketcall subcalls */ + +int sys_socket(), sys_bind(), sys_connect(), sys_listen(), sys_accept4(); +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(); +int sys_recvmmsg(); + +/* *at syscalls */ +int sys_fchmodat(); +int sys_newfstatat(); +int sys_unlinkat(); +int sys_fchownat(); +int sys_openat(); +int sys_renameat(); +int sys_symlinkat(); +int sys_readlinkat(); +int sys_linkat(); +int sys_faccessat(); +int sys_mkdirat(); +int sys_mknodat(); +int sys_futimesat(); + +/* new ones */ +int sys_query_module(); +int sys_poll(); +int sys_mincore(); +int sys_inotify_add_watch(); +int sys_inotify_rm_watch(); +int sys_inotify_init1(); +int sys_pselect6(); +int sys_ppoll(); +int sys_unshare(); + +/* 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) && \ + !defined(__ARM_EABI__) +# 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 400 +#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_sub_accept4 (SYS_socket_subcall + 18) +#define SYS_sub_recvmmsg (SYS_socket_subcall + 19) + +#define SYS_socket_nsubcalls 20 +#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) && \ + !defined(__ARM_EABI__) +# 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 + +int sys_pread64(), sys_pwrite64(); + +#ifdef POWERPC +int sys_subpage_prot(); +#endif + +#ifdef BFIN +int sys_sram_alloc(); +#endif
diff --git a/strace-4.5.20/linux/tile/syscallent.h b/strace-4.5.20/linux/tile/syscallent.h new file mode 100644 index 0000000..3c5ca69 --- /dev/null +++ b/strace-4.5.20/linux/tile/syscallent.h
@@ -0,0 +1,302 @@ + { 0, 0, sys_restart_syscall, "restart_syscall" }, /* 0 */ + { 1, TP, sys_exit, "exit" }, /* 1 */ + { 0, TP, sys_fork, "fork" }, /* 2 */ + { 3, TD, sys_read, "read" }, /* 3 */ + { 3, TD, sys_write, "write" }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TD, sys_close, "close" }, /* 6 */ + { 3, TP, sys_waitpid, "waitpid" }, /* 7 */ + { 2, TD|TF, sys_creat, "creat" }, /* 8 */ + { 2, TF, sys_link, "link" }, /* 9 */ + { 1, TF, sys_unlink, "unlink" }, /* 10 */ + { 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 */ + { 2, TF, sys_stat, "stat" }, /* 17 */ + { 3, TD, sys_lseek, "lseek" }, /* 18 */ + { 0, 0, sys_getpid, "getpid" }, /* 19 */ + { 5, TF, sys_mount, "mount" }, /* 20 */ + { 2, TF, sys_umount2, "umount" }, /* 21 */ + { 1, 0, sys_setuid, "setuid" }, /* 22 */ + { 0, 0, sys_getuid, "getuid" }, /* 23 */ + { 1, 0, sys_stime, "stime" }, /* 24 */ + { 4, 0, sys_ptrace, "ptrace" }, /* 25 */ + { 1, 0, sys_alarm, "alarm" }, /* 26 */ + { 2, TD, sys_fstat, "fstat" }, /* 27 */ + { 0, TS, sys_pause, "pause" }, /* 28 */ + { 2, TF, sys_utime, "utime" }, /* 29 */ + { 2, TF, sys_access, "access" }, /* 30 */ + { 1, 0, sys_nice, "nice" }, /* 31 */ + { 0, 0, sys_sync, "sync" }, /* 32 */ + { 2, TS, sys_kill, "kill" }, /* 33 */ + { 2, TF, sys_rename, "rename" }, /* 34 */ + { 2, TF, sys_mkdir, "mkdir" }, /* 35 */ + { 1, TF, sys_rmdir, "rmdir" }, /* 36 */ + { 1, TD, sys_dup, "dup" }, /* 37 */ + { 1, TD, sys_pipe, "pipe" }, /* 38 */ + { 1, 0, sys_times, "times" }, /* 39 */ + { 1, 0, sys_brk, "brk" }, /* 40 */ + { 1, 0, sys_setgid, "setgid" }, /* 41 */ + { 0, 0, sys_getgid, "getgid" }, /* 42 */ + { 3, TS, sys_signal, "signal" }, /* 43 */ + { 0, 0, sys_geteuid, "geteuid" }, /* 44 */ + { 0, 0, sys_getegid, "getegid" }, /* 45 */ + { 1, TF, sys_acct, "acct" }, /* 46 */ + { 3, TD, sys_ioctl, "ioctl" }, /* 47 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 48 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 49 */ + { 1, 0, sys_umask, "umask" }, /* 50 */ + { 1, TF, sys_chroot, "chroot" }, /* 51 */ + { 2, 0, sys_ustat, "ustat" }, /* 52 */ + { 2, TD, sys_dup2, "dup2" }, /* 53 */ + { 0, 0, sys_getppid, "getppid" }, /* 54 */ + { 0, 0, sys_getpgrp, "getpgrp" }, /* 55 */ + { 0, 0, sys_setsid, "setsid" }, /* 56 */ + { 0, TS, printargs, "sgetmask" }, /* 57 */ + { 1, TS, printargs, "ssetmask" }, /* 58 */ + { 2, 0, sys_setreuid, "setreuid" }, /* 59 */ + { 2, 0, sys_setregid, "setregid" }, /* 60 */ + { 1, TS, sys_sigpending, "sigpending" }, /* 61 */ + { 2, 0, sys_sethostname, "sethostname" }, /* 62 */ + { 2, 0, sys_setrlimit, "setrlimit" }, /* 63 */ + { 2, 0, sys_getrlimit, "ugetrlimit" }, /* 64 */ + { 2, 0, sys_getrusage, "getrusage" }, /* 65 */ + { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 66 */ + { 2, 0, sys_settimeofday, "settimeofday" }, /* 67 */ + { 2, 0, sys_getgroups, "getgroups" }, /* 68 */ + { 2, 0, sys_setgroups, "setgroups" }, /* 69 */ + { 5, TD, sys_select, "select" }, /* 70 */ + { 2, TF, sys_symlink, "symlink" }, /* 71 */ + { 2, TF, sys_lstat, "lstat" }, /* 72 */ + { 3, TF, sys_readlink, "readlink" }, /* 73 */ + { 1, TF, sys_uselib, "uselib" }, /* 74 */ + { 1, TF, sys_swapon, "swapon" }, /* 75 */ + { 3, 0, sys_reboot, "reboot" }, /* 76 */ + { 6, 0, sys_mmap, "mmap2" }, /* 77 */ + { 2, 0, sys_munmap, "munmap" }, /* 78 */ + { 2, TF, sys_truncate, "truncate" }, /* 79 */ + { 2, TD, sys_ftruncate, "ftruncate" }, /* 80 */ + { 2, TD, sys_fchmod, "fchmod" }, /* 81 */ + { 3, TD, sys_fchown, "fchown" }, /* 82 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 83 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 84 */ + { 2, TF, sys_statfs, "statfs" }, /* 85 */ + { 2, TD, sys_fstatfs, "fstatfs" }, /* 86 */ + { 3, TN, sys_socket, "socket" }, /* 87 */ + { 3, TN, sys_bind, "bind" }, /* 88 */ + { 3, TN, sys_connect, "connect" }, /* 89 */ + { 2, TN, sys_listen, "listen" }, /* 90 */ + { 3, TN, sys_accept, "accept" }, /* 91 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 92 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 93 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 94 */ + { 4, TN, sys_send, "send" }, /* 95 */ + { 6, TN, sys_sendto, "sendto" }, /* 96 */ + { 4, TN, sys_recv, "recv" }, /* 97 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 98 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 99 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 100 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 101 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 102 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 103 */ + { 3, 0, sys_syslog, "syslog" }, /* 104 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 105 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 106 */ + { 0, 0, sys_vhangup, "vhangup" }, /* 107 */ + { 4, TP, sys_wait4, "wait4" }, /* 108 */ + { 1, 0, sys_swapoff, "swapoff" }, /* 109 */ + { 1, 0, sys_sysinfo, "sysinfo" }, /* 110 */ + { 4, TI, sys_shmget, "shmget" }, /* 111 */ + { 4, TI, sys_shmat, "shmat" }, /* 112 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 113 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 114 */ + { 4, TI, sys_semget, "semget" }, /* 115 */ + { 4, TI, sys_semop, "semop" }, /* 116 */ + { 4, TI, sys_semctl, "semctl" }, /* 117 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 118 */ + { 4, TI, sys_msgget, "msgget" }, /* 119 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 120 */ + { 4, TI, sys_msgrcv, "msgrcv" }, /* 121 */ + { 4, TI, sys_msgctl, "msgctl" }, /* 122 */ + { 1, TD, sys_fsync, "fsync" }, /* 123 */ + { 1, TS, printargs, "sigreturn" }, /* 124 */ + { 5, TP, sys_clone, "clone" }, /* 125 */ + { 2, 0, sys_setdomainname, "setdomainname" }, /* 126 */ + { 1, 0, sys_uname, "uname" }, /* 127 */ + { 1, 0, sys_adjtimex, "adjtimex" }, /* 128 */ + { 3, 0, sys_mprotect, "mprotect" }, /* 129 */ + { 3, TS, sys_sigprocmask, "sigprocmask" }, /* 130 */ + { 3, 0, sys_init_module, "init_module" }, /* 131 */ + { 1, 0, sys_delete_module, "delete_module" }, /* 132 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 133 */ + { 1, 0, sys_getpgid, "getpgid" }, /* 134 */ + { 1, TD, sys_fchdir, "fchdir" }, /* 135 */ + { 0, 0, sys_bdflush, "bdflush" }, /* 136 */ + { 3, 0, sys_sysfs, "sysfs" }, /* 137 */ + { 1, 0, sys_personality, "personality" }, /* 138 */ + { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 139 */ + { 1, 0, sys_setfsuid, "setfsuid" }, /* 140 */ + { 1, 0, sys_setfsgid, "setfsgid" }, /* 141 */ + { 5, TD, sys_llseek, "_llseek" }, /* 142 */ + { 3, TD, sys_getdents, "getdents" }, /* 143 */ + { 2, TD, sys_flock, "flock" }, /* 144 */ + { 3, 0, sys_msync, "msync" }, /* 145 */ + { 3, TD, sys_readv, "readv" }, /* 146 */ + { 3, TD, sys_writev, "writev" }, /* 147 */ + { 1, 0, sys_getsid, "getsid" }, /* 148 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 149 */ + { 1, 0, sys_sysctl, "_sysctl" }, /* 150 */ + { 2, 0, sys_mlock, "mlock" }, /* 151 */ + { 2, 0, sys_munlock, "munlock" }, /* 152 */ + { 2, 0, sys_mlockall, "mlockall" }, /* 153 */ + { 0, 0, sys_munlockall, "munlockall" }, /* 154 */ + { 0, 0, sys_sched_setparam, "sched_setparam" }, /* 155 */ + { 2, 0, sys_sched_getparam, "sched_getparam" }, /* 156 */ + { 3, 0, sys_sched_setscheduler, "sched_setscheduler" }, /* 157 */ + { 1, 0, sys_sched_getscheduler, "sched_getscheduler" }, /* 158 */ + { 0, 0, sys_sched_yield, "sched_yield" }, /* 159 */ + { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max" }, /* 160 */ + { 1, 0, sys_sched_get_priority_min,"sched_get_priority_min" }, /* 161 */ + { 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval" }, /* 162 */ + { 2, 0, sys_nanosleep, "nanosleep" }, /* 163 */ + { 4, 0, sys_mremap, "mremap" }, /* 164 */ + { 3, 0, sys_setresuid, "setresuid" }, /* 165 */ + { 3, 0, sys_getresuid, "getresuid" }, /* 166 */ + { 3, TD, 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 */ + { 5, TD, sys_pread, "pread64" }, /* 179 */ + { 5, TD, 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, TD, sys_sendfile, "sendfile" }, /* 186 */ + { 5, 0, sys_getpmsg, "getpmsg" }, /* 187 */ + { 5, 0, sys_putpmsg, "putpmsg" }, /* 188 */ + { 0, TP, sys_vfork, "vfork" }, /* 189 */ + { 3, TF, sys_truncate64, "truncate64" }, /* 190 */ + { 3, TD, sys_ftruncate64, "ftruncate64" }, /* 191 */ + { 2, TF, sys_stat64, "stat64" }, /* 192 */ + { 2, TF, sys_lstat64, "lstat64" }, /* 193 */ + { 2, TD, sys_fstat64, "fstat64" }, /* 194 */ + { 2, TF, sys_pivotroot, "pivot_root" }, /* 195 */ + { 3, 0, sys_mincore, "mincore" }, /* 196 */ + { 3, 0, sys_madvise, "madvise" }, /* 197 */ + { 4, TD, sys_getdents64, "getdents64" }, /* 198 */ + { 3, TD, sys_fcntl, "fcntl64" }, /* 199 */ + { 0, 0, printargs, "gettid" }, /* 200 */ + { 4, TD, sys_readahead, "readahead" }, /* 201 */ + { 5, TF, sys_setxattr, "setxattr" }, /* 202 */ + { 5, TF, sys_setxattr, "lsetxattr" }, /* 203 */ + { 5, TD, sys_fsetxattr, "fsetxattr" }, /* 204 */ + { 4, TF, sys_getxattr, "getxattr" }, /* 205 */ + { 4, TF, sys_getxattr, "lgetxattr" }, /* 206 */ + { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 207 */ + { 3, TF, sys_listxattr, "listxattr" }, /* 208 */ + { 3, TF, sys_listxattr, "llistxattr" }, /* 209 */ + { 3, 0, sys_flistxattr, "flistxattr" }, /* 210 */ + { 2, TF, sys_removexattr, "removexattr" }, /* 211 */ + { 2, TF, sys_removexattr, "lremovexattr" }, /* 212 */ + { 2, TD, sys_fremovexattr, "fremovexattr" }, /* 213 */ + { 2, TS, sys_kill, "tkill" }, /* 214 */ + { 4, TD, sys_sendfile64, "sendfile64" }, /* 215 */ + { 5, 0, sys_futex, "futex" }, /* 216 */ + { 3, 0, sys_sched_setaffinity, "sched_setaffinity" }, /* 217 */ + { 3, 0, sys_sched_getaffinity, "sched_getaffinity" }, /* 218 */ + { 2, 0, sys_io_setup, "io_setup" }, /* 219 */ + { 1, 0, sys_io_destroy, "io_destroy" }, /* 220 */ + { 5, 0, sys_io_getevents, "io_getevents" }, /* 221 */ + { 3, 0, sys_io_submit, "io_submit" }, /* 222 */ + { 3, 0, sys_io_cancel, "io_cancel" }, /* 223 */ + { 5, 0, sys_fadvise64, "fadvise64" }, /* 224 */ + { 4, 0, printargs, "migrate_pages" }, /* 225 */ + { 1, TP, sys_exit, "exit_group" }, /* 226 */ + { 4, 0, printargs, "lookup_dcookie" }, /* 227 */ + { 1, 0, sys_epoll_create, "epoll_create" }, /* 228 */ + { 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 229 */ + { 4, TD, sys_epoll_wait, "epoll_wait" }, /* 230 */ + { 5, 0, sys_remap_file_pages, "remap_file_pages" }, /* 231 */ + { 1, 0, printargs, "set_tid_address" }, /* 232 */ + { 3, 0, sys_timer_create, "timer_create" }, /* 233 */ + { 4, 0, sys_timer_settime, "timer_settime" }, /* 234 */ + { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 235 */ + { 1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 236 */ + { 1, 0, sys_timer_delete, "timer_delete" }, /* 237 */ + { 2, 0, sys_clock_settime, "clock_settime" }, /* 239 */ + { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 239 */ + { 2, 0, sys_clock_getres, "clock_getres" }, /* 240 */ + { 4, 0, sys_clock_nanosleep, "clock_nanosleep"}, /* 241 */ + { 3, TF, sys_statfs64, "statfs64" }, /* 242 */ + { 3, TD, sys_fstatfs64, "fstatfs64" }, /* 243 */ + { 3, TS, sys_tgkill, "tgkill" }, /* 244 */ + { 2, TF, sys_utimes, "utimes" }, /* 245 */ + { 6, 0, sys_fadvise64_64, "fadvise64_64" }, /* 246 */ + { 6, 0, sys_mbind, "mbind" }, /* 247 */ + { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 248 */ + { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 249 */ + { 4, 0, sys_mq_open, "mq_open" }, /* 250 */ + { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 251 */ + { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 252 */ + { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 253 */ + { 2, 0, sys_mq_notify, "mq_notify" }, /* 254 */ + { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 255 */ + { 4, 0, printargs, "kexec_load" }, /* 256 */ + { 5, TP, sys_waitid, "waitid" }, /* 257 */ + { 5, 0, printargs, "add_key" }, /* 258 */ + { 4, 0, printargs, "request_key" }, /* 259 */ + { 5, 0, printargs, "keyctl" }, /* 260 */ + { 3, 0, printargs, "ioprio_set" }, /* 261 */ + { 2, 0, printargs, "ioprio_get" }, /* 262 */ + { 0, TD, printargs, "inotify_init" }, /* 263 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 264 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 265 */ + { 1, 0, printargs, "raise_fpe" }, /* 266 */ + { 4, TD|TF, sys_openat, "openat" }, /* 267 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 268 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 269 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 270 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 271 */ + { 4, TD|TD, sys_newfstatat, "fstatat64" }, /* 272 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 273 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 274 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 275 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 276 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 277 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 278 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 279 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 280 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 281 */ + { 1, TP, sys_unshare, "unshare" }, /* 282 */ + { 2, 0, printargs, "set_robust_list" }, /* 283 */ + { 3, 0, printargs, "get_robust_list" }, /* 284 */ + { 6, TD, printargs, "splice" }, /* 285 */ + { 4, TD, printargs, "sync_file_range" }, /* 286 */ + { 4, TD, printargs, "tee" }, /* 287 */ + { 4, TD, printargs, "vmsplice" }, /* 288 */ + { 6, TP, sys_move_pages, "move_pages" }, /* 289 */ + { 1, TP, printargs, "unused" }, /* 290 */ + { 1, 0, printargs, "cmpxchg_badaddr" }, /* 291 */ + { 3, 0, sys_getcpu, "getcpu" }, /* 292 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 293 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 294 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 295 */ + { 2, TD, sys_timerfd_create, "timerfd_create" }, /* 296 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 297 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 298 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime" }, /* 299 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime" }, /* 300 */ + { 1, 0, printargs, "flush_cache" } /* 301 */
diff --git a/strace-4.5.20/linux/x86_64/errnoent1.h b/strace-4.5.20/linux/x86_64/errnoent1.h new file mode 100644 index 0000000..a894827 --- /dev/null +++ b/strace-4.5.20/linux/x86_64/errnoent1.h
@@ -0,0 +1,2 @@ +/* Our second set comes from the i386 files. */ +#include "../errnoent.h"
diff --git a/strace-4.5.20/linux/x86_64/gentab.pl b/strace-4.5.20/linux/x86_64/gentab.pl new file mode 100644 index 0000000..2858e07 --- /dev/null +++ b/strace-4.5.20/linux/x86_64/gentab.pl
@@ -0,0 +1,75 @@ +#!/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-4.5.20/linux/x86_64/ioctlent1.h b/strace-4.5.20/linux/x86_64/ioctlent1.h new file mode 100644 index 0000000..a44b0ae --- /dev/null +++ b/strace-4.5.20/linux/x86_64/ioctlent1.h
@@ -0,0 +1,2 @@ +/* Our second set comes from the i386 files. */ +#include "../ioctlent.h"
diff --git a/strace-4.5.20/linux/x86_64/signalent1.h b/strace-4.5.20/linux/x86_64/signalent1.h new file mode 100644 index 0000000..5c18d98 --- /dev/null +++ b/strace-4.5.20/linux/x86_64/signalent1.h
@@ -0,0 +1,2 @@ +/* Our second set comes from the i386 files. */ +#include "../signalent.h"
diff --git a/strace-4.5.20/linux/x86_64/syscallent.h b/strace-4.5.20/linux/x86_64/syscallent.h new file mode 100644 index 0000000..b18207a --- /dev/null +++ b/strace-4.5.20/linux/x86_64/syscallent.h
@@ -0,0 +1,300 @@ + { 3, TD, sys_read, "read" }, /* 0 */ + { 3, TD, sys_write, "write" }, /* 1 */ + { 3, TD|TF, sys_open, "open" }, /* 2 */ + { 1, TD, sys_close, "close" }, /* 3 */ + { 2, TF, sys_stat, "stat" }, /* 4 */ + { 2, TD, sys_fstat, "fstat" }, /* 5 */ + { 2, TF, sys_lstat, "lstat" }, /* 6 */ + { 3, TD, sys_poll, "poll" }, /* 7 */ + { 3, TD, 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, TD, sys_ioctl, "ioctl" }, /* 16 */ + { 5, TD, sys_pread, "pread" }, /* 17 */ + { 5, TD, sys_pwrite, "pwrite" }, /* 18 */ + { 3, TD, sys_readv, "readv" }, /* 19 */ + { 3, TD, sys_writev, "writev" }, /* 20 */ + { 2, TF, sys_access, "access" }, /* 21 */ + { 1, TD, sys_pipe, "pipe" }, /* 22 */ + { 5, TD, sys_select, "select" }, /* 23 */ + { 0, 0, sys_sched_yield, "sched_yield"}, /* 24 */ + { 5, 0, sys_mremap, "mremap" }, /* 25 */ + { 3, 0, sys_msync, "msync" }, /* 26 */ + { 3, 0, sys_mincore, "mincore" }, /* 27 */ + { 3, 0, sys_madvise, "madvise" }, /* 28 */ + { 4, TI, sys_shmget, "shmget" }, /* 29 */ + { 4, TI, sys_shmat, "shmat" }, /* 30 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 31 */ + { 1, TD, sys_dup, "dup" }, /* 32 */ + { 2, TD, 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, TD|TN, 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 */ + { 5, TI, sys_msgrcv, "msgrcv" }, /* 70 */ + { 3, TI, sys_msgctl, "msgctl" }, /* 71 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 72 */ + { 2, TD, sys_flock, "flock" }, /* 73 */ + { 1, TD, sys_fsync, "fsync" }, /* 74 */ + { 1, TD, sys_fdatasync, "fdatasync" }, /* 75 */ + { 2, TF, sys_truncate, "truncate" }, /* 76 */ + { 2, TD, sys_ftruncate, "ftruncate" }, /* 77 */ + { 3, TD, sys_getdents, "getdents" }, /* 78 */ + { 2, TF, sys_getcwd, "getcwd" }, /* 79 */ + { 1, TF, sys_chdir, "chdir" }, /* 80 */ + { 1, TD, sys_fchdir, "fchdir" }, /* 81 */ + { 2, TF, sys_rename, "rename" }, /* 82 */ + { 2, TF, sys_mkdir, "mkdir" }, /* 83 */ + { 1, TF, sys_rmdir, "rmdir" }, /* 84 */ + { 2, TD|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, TD, sys_fchmod, "fchmod" }, /* 91 */ + { 3, TF, sys_chown, "chown" }, /* 92 */ + { 3, TD, 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, TD, 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, sys_prctl, "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 */ + { 3, 0, sys_init_module, "init_module" }, /* 175 */ + { 2, 0, sys_delete_module, "delete_module" }, /* 176 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 177 */ + { 5, 0, sys_query_module, "query_module" }, /* 178 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 179 */ + { 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, TD, sys_readahead, "readahead" }, /* 187 */ + { 5, TF, sys_setxattr, "setxattr" }, /* 188 */ + { 5, TF, sys_setxattr, "lsetxattr" }, /* 189 */ + { 5, TD, 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, TD, sys_fremovexattr, "fremovexattr" }, /* 199 */ + { 2, 0, sys_kill, "tkill" }, /* 200 */ + { 1, 0, sys_time, "time" }, /* 201 */ + { 6, 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 */ + { 3, TD, sys_getdents64, "getdents64" }, /* 217 */ + { 1, 0, printargs, "set_tid_address"}, /* 218 */ + { 0, 0, sys_restart_syscall, "restart_syscall"}, /* 219 */ + { 5, TI, sys_semtimedop, "semtimedop" }, /* 220 */ + { 4, 0, 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, TD, sys_epoll_wait, "epoll_wait" }, /* 232 */ + { 5, TD, 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, "add_key" }, /* 248 */ + { 4, 0, printargs, "request_key" }, /* 249 */ + { 5, 0, printargs, "keyctl" }, /* 250 */ + { 3, 0, printargs, "ioprio_set" }, /* 251 */ + { 2, 0, printargs, "ioprio_get" }, /* 252 */ + { 0, TD, printargs, "inotify_init" }, /* 253 */ + { 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 254 */ + { 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 255 */ + { 4, 0, printargs, "migrate_pages" }, /* 256 */ + { 4, TD|TF, sys_openat, "openat" }, /* 257 */ + { 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 258 */ + { 4, TD|TF, sys_mknodat, "mknodat" }, /* 259 */ + { 5, TD|TF, sys_fchownat, "fchownat" }, /* 260 */ + { 3, TD|TF, sys_futimesat, "futimesat" }, /* 261 */ + { 4, TD|TD, sys_newfstatat, "newfstatat" }, /* 262 */ + { 3, TD|TF, sys_unlinkat, "unlinkat" }, /* 263 */ + { 4, TD|TF, sys_renameat, "renameat" }, /* 264 */ + { 5, TD|TF, sys_linkat, "linkat" }, /* 265 */ + { 3, TD|TF, sys_symlinkat, "symlinkat" }, /* 266 */ + { 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 267 */ + { 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 268 */ + { 3, TD|TF, sys_faccessat, "faccessat" }, /* 269 */ + { 6, TD, sys_pselect6, "pselect6" }, /* 270 */ + { 5, TD, sys_ppoll, "ppoll" }, /* 271 */ + { 1, TP, sys_unshare, "unshare" }, /* 272 */ + { 2, 0, printargs, "set_robust_list" }, /* 273 */ + { 3, 0, printargs, "get_robust_list" }, /* 274 */ + { 6, TD, printargs, "splice" }, /* 275 */ + { 4, TD, printargs, "tee" }, /* 276 */ + { 4, TD, printargs, "sync_file_range" }, /* 277 */ + { 4, TD, printargs, "vmsplice" }, /* 278 */ + { 6, 0, sys_move_pages, "move_pages" }, /* 279 */ + { 4, TD|TF, sys_utimensat, "utimensat" }, /* 280 */ + { 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 281 */ + { 3, TD|TS, sys_signalfd, "signalfd" }, /* 282 */ + { 2, TD, sys_timerfd_create, "timerfd_create"}, /* 283 */ + { 1, TD, sys_eventfd, "eventfd" }, /* 284 */ + { 6, TF, sys_fallocate, "fallocate" }, /* 285 */ + { 4, TD, sys_timerfd_settime, "timerfd_settime"}, /* 286 */ + { 2, TD, sys_timerfd_gettime, "timerfd_gettime"}, /* 287 */ + { 4, TN, sys_accept4, "accept4" }, /* 288 */ + { 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 289 */ + { 2, TD, sys_eventfd2, "eventfd2" }, /* 290 */ + { 1, 0, sys_epoll_create1, "epoll_create1" }, /* 291 */ + { 3, TD, sys_dup3, "dup3" }, /* 292 */ + { 2, TD, sys_pipe2, "pipe2" }, /* 293 */ + { 1, TD, sys_inotify_init1, "inotify_init1" }, /* 294 */ + { 5, TD, printargs, "preadv" }, /* 295 */ + { 5, TD, printargs, "pwritev" }, /* 296 */ + { 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 297 */ + { 5, TD, printargs, "perf_event_open"}, /* 298 */ + { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 299 */
diff --git a/strace-4.5.20/linux/x86_64/syscallent1.h b/strace-4.5.20/linux/x86_64/syscallent1.h new file mode 100644 index 0000000..9097785 --- /dev/null +++ b/strace-4.5.20/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 "i386/syscallent.h"
diff --git a/strace-4.5.20/mem.c b/strace-4.5.20/mem.c new file mode 100644 index 0000000..d55cd69 --- /dev/null +++ b/strace-4.5.20/mem.c
@@ -0,0 +1,986 @@ +/* + * 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$ + */ + +#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 +} + +#if defined(FREEBSD) || defined(SUNOS4) +int +sys_sbrk(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) { + tprintf("%lu", tcp->u_arg[0]); + } + return RVAL_HEX; +} +#endif /* FREEBSD || SUNOS4 */ + +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 +#ifdef PROT_SAO + { PROT_SAO, "PROT_SAO" }, +#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_32BIT + { MAP_32BIT, "MAP_32BIT" }, +#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 +#ifdef TILE + { MAP_CACHE_NO_LOCAL, "MAP_CACHE_NO_LOCAL" }, + { MAP_CACHE_NO_L2, "MAP_CACHE_NO_L2" }, + { MAP_CACHE_NO_L1, "MAP_CACHE_NO_L1" }, +#endif + { 0, NULL }, +}; + +#ifdef TILE +static +int +addtileflags(flags) +long flags; +{ + long home = flags & _MAP_CACHE_MKHOME(_MAP_CACHE_HOME_MASK); + flags &= ~_MAP_CACHE_MKHOME(_MAP_CACHE_HOME_MASK); + + if (flags & _MAP_CACHE_INCOHERENT) { + flags &= ~_MAP_CACHE_INCOHERENT; + if (home == MAP_CACHE_HOME_NONE) { + tprintf("|MAP_CACHE_INCOHERENT"); + return flags; + } + tprintf("|_MAP_CACHE_INCOHERENT"); + } + + switch (home) { + case 0: break; + case MAP_CACHE_HOME_HERE: tprintf("|MAP_CACHE_HOME_HERE"); break; + case MAP_CACHE_HOME_NONE: tprintf("|MAP_CACHE_HOME_NONE"); break; + case MAP_CACHE_HOME_SINGLE: tprintf("|MAP_CACHE_HOME_SINGLE"); break; + case MAP_CACHE_HOME_TASK: tprintf("|MAP_CACHE_HOME_TASK"); break; + case MAP_CACHE_HOME_HASH: tprintf("|MAP_CACHE_HOME_HASH"); break; + default: + tprintf("|MAP_CACHE_HOME(%d)", + (home >> _MAP_CACHE_HOME_SHIFT) ); + break; + } + + return flags; +} +#endif + +#if !HAVE_LONG_LONG_OFF_T +static +int +print_mmap(tcp,u_arg, offset) +struct tcb *tcp; +long *u_arg; +long long offset; +{ + 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_???"); +#ifdef TILE + addflags(mmap_flags, addtileflags(u_arg[3] & ~MAP_TYPE)); +#else + addflags(mmap_flags, u_arg[3] & ~MAP_TYPE); +#endif +#else + printflags(mmap_flags, u_arg[3], "MAP_???"); +#endif + /* fd (is always int, not long) */ + tprintf(", %d, ", (int)u_arg[4]); + /* offset */ + tprintf("%#llx", offset); + } + 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 defined(X86_64) + if (current_personality == 1) { + int i; + for (i = 0; i < 6; ++i) { + unsigned int val; + if (umove(tcp, tcp->u_arg[0] + i * 4, &val) == -1) + return 0; + u_arg[i] = val; + } + } + else +# endif + 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, u_arg[5]); +} +#endif + +int +sys_mmap(tcp) +struct tcb *tcp; +{ + long long offset = tcp->u_arg[5]; + +#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. + */ + offset <<= PAGE_SHIFT; +#endif +#if defined(LINUX_MIPSN32) + offset = tcp->ext_arg[5]; +#endif + return print_mmap(tcp, tcp->u_arg, offset); +} +#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 */ + + /* 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 */ + printllval(tcp, "%#llx", 5); + } + 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" }, +#ifdef MREMAP_FIXED + { MREMAP_FIXED, "MREMAP_FIXED" }, +#endif + { 0, NULL } +}; + +int +sys_mremap(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_???"); +#ifdef MREMAP_FIXED + if ((tcp->u_arg[3] & (MREMAP_MAYMOVE | MREMAP_FIXED)) == + (MREMAP_MAYMOVE | MREMAP_FIXED)) + tprintf(", %#lx", tcp->u_arg[4]); +#endif + } + return RVAL_HEX; +} + +static const struct xlat madvise_cmds[] = { +#ifdef MADV_NORMAL + { MADV_NORMAL, "MADV_NORMAL" }, +#endif +#ifdef MADV_RANDOM + { MADV_RANDOM, "MADV_RANDOM" }, +#endif +#ifdef MADV_SEQUENTIAL + { MADV_SEQUENTIAL, "MADV_SEQUENTIAL" }, +#endif +#ifdef MADV_WILLNEED + { MADV_WILLNEED, "MADV_WILLNEED" }, +#endif +#ifdef MADV_DONTNEED + { 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]); + printxval(madvise_cmds, 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; +} + +#if defined(ALPHA) || defined(FREEBSD) || defined(IA64) || defined(SUNOS4) || defined(SVR4) || defined(SPARC) || defined(SPARC64) +int +sys_getpagesize(tcp) +struct tcb *tcp; +{ + if (exiting(tcp)) + return RVAL_HEX; + return 0; +} +#endif /* ALPHA || FREEBSD || IA64 || SUNOS4 || SVR4 */ + +#if defined(LINUX) && defined(__i386__) +void +print_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}", + (long) 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) +#define MPOL_MF_MOVE (1<<1) +#define MPOL_MF_MOVE_ALL (1<<2) + + +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" }, + { MPOL_MF_MOVE, "MPOL_MF_MOVE" }, + { MPOL_MF_MOVE_ALL, "MPOL_MF_MOVE_ALL" }, + { 0, NULL } +}; + +static const struct xlat mempolicyflags[] = { + { MPOL_F_NODE, "MPOL_F_NODE" }, + { MPOL_F_ADDR, "MPOL_F_ADDR" }, + { 0, NULL } +}; + +static const struct xlat move_pages_flags[] = { + { MPOL_MF_MOVE, "MPOL_MF_MOVE" }, + { MPOL_MF_MOVE_ALL, "MPOL_MF_MOVE_ALL" }, + { 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("%#lx, %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; +} + +int +sys_move_pages(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) { + unsigned long npages = tcp->u_arg[1]; + tprintf("%ld, %lu, ", tcp->u_arg[0], npages); + if (tcp->u_arg[2] == 0) + tprintf("NULL, "); + else { + int i; + long puser = tcp->u_arg[2]; + tprintf("{"); + for (i = 0; i < npages; ++i) { + void *p; + if (i > 0) + tprintf(", "); + if (umove(tcp, puser, &p) < 0) { + tprintf("???"); + break; + } + tprintf("%p", p); + puser += sizeof (void *); + } + tprintf("}, "); + } + if (tcp->u_arg[3] == 0) + tprintf("NULL, "); + else { + int i; + long nodeuser = tcp->u_arg[3]; + tprintf("{"); + for (i = 0; i < npages; ++i) { + int node; + if (i > 0) + tprintf(", "); + if (umove(tcp, nodeuser, &node) < 0) { + tprintf("???"); + break; + } + tprintf("%#x", node); + nodeuser += sizeof (int); + } + tprintf("}, "); + } + } + if (exiting(tcp)) { + unsigned long npages = tcp->u_arg[1]; + if (tcp->u_arg[4] == 0) + tprintf("NULL, "); + else { + int i; + long statususer = tcp->u_arg[4]; + tprintf("{"); + for (i = 0; i < npages; ++i) { + int status; + if (i > 0) + tprintf(", "); + if (umove(tcp, statususer, &status) < 0) { + tprintf("???"); + break; + } + tprintf("%#x", status); + statususer += sizeof (int); + } + tprintf("}, "); + } + printflags(move_pages_flags, tcp->u_arg[5], "MPOL_???"); + } + return 0; +} +#endif + +#if defined(LINUX) && defined(POWERPC) +int +sys_subpage_prot(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) { + unsigned long cur, end, abbrev_end, entries; + unsigned int entry; + + tprintf("%#lx, %#lx, ", tcp->u_arg[0], tcp->u_arg[1]); + entries = tcp->u_arg[1] >> 16; + if (!entries || !tcp->u_arg[2]) { + tprintf("{}"); + return 0; + } + cur = tcp->u_arg[2]; + end = cur + (sizeof(int) * entries); + if (!verbose(tcp) || end < tcp->u_arg[2]) { + tprintf("%#lx", tcp->u_arg[2]); + return 0; + } + if (abbrev(tcp)) { + abbrev_end = cur + (sizeof(int) * max_strlen); + if (abbrev_end > end) + abbrev_end = end; + } + else + abbrev_end = end; + tprintf("{"); + for (; cur < end; cur += sizeof(int)) { + if (cur > tcp->u_arg[2]) + tprintf(", "); + if (cur >= abbrev_end) { + tprintf("..."); + break; + } + if (umove(tcp, cur, &entry) < 0) { + tprintf("??? [%#lx]", cur); + break; + } + else + tprintf("%#08x", entry); + } + tprintf("}"); + } + + return 0; +} +#endif
diff --git a/strace-4.5.20/missing b/strace-4.5.20/missing new file mode 100755 index 0000000..28055d2 --- /dev/null +++ b/strace-4.5.20/missing
@@ -0,0 +1,376 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2009-04-28.21; # UTC + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, +# 2008, 2009 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, see <http://www.gnu.org/licenses/>. + +# 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=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# 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 + ;; + + -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' + autom4te touch the output file, or create a stub one + 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] + +Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and +\`g' are ignored when checking the name. + +Send bug reports to <bug-automake@gnu.org>." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# normalize program name to check for. +program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). This is about non-GNU programs, so use $1 not +# $program. +case $1 in + lex*|yacc*) + # Not GNU programs, they don't have --version. + ;; + + tar*) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $program in + aclocal*) + 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*) + 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*) + 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*) + 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*) + 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 "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + 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 test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -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 test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man*) + 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 "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit $? + fi + ;; + + makeinfo*) + 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." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + tar*) + shift + + # 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-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End:
diff --git a/strace-4.5.20/net.c b/strace-4.5.20/net.c new file mode 100644 index 0000000..f56664e --- /dev/null +++ b/strace-4.5.20/net.c
@@ -0,0 +1,2143 @@ +/* + * 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$ + */ + +#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_RDM + { SOCK_RDM, "SOCK_RDM" }, +#endif +#ifdef SOCK_SEQPACKET + { SOCK_SEQPACKET,"SOCK_SEQPACKET"}, +#endif +#ifdef SOCK_DCCP + { SOCK_DCCP, "SOCK_DCCP" }, +#endif +#ifdef SOCK_PACKET + { SOCK_PACKET, "SOCK_PACKET" }, +#endif + { 0, NULL }, +}; +const struct xlat sock_type_flags[] = { +#ifdef SOCK_CLOEXEC + { SOCK_CLOEXEC, "SOCK_CLOEXEC" }, +#endif +#ifdef SOCK_NONBLOCK + { SOCK_NONBLOCK,"SOCK_NONBLOCK" }, +#endif + { 0, NULL }, +}; +#ifndef SOCK_TYPE_MASK +# define SOCK_TYPE_MASK 0xf +#endif +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 +#ifdef MSG_CMSG_CLOEXEC + { MSG_CMSG_CLOEXEC, "MSG_CMSG_CLOEXEC" }, +#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_RECVTTL" }, +#endif +#ifdef IP_RECVTOS + { IP_RECVTOS, "IP_RECVTOS" }, +#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 +#ifdef IPV6_ADD_MEMBERSHIP + { IPV6_ADD_MEMBERSHIP, "IPV6_ADD_MEMBERSHIP" }, +#endif +#ifdef IPV6_DROP_MEMBERSHIP + { IPV6_DROP_MEMBERSHIP, "IPV6_DROP_MEMBERSHIP" }, +#endif +#ifdef IPV6_ROUTER_ALERT + { IPV6_ROUTER_ALERT, "IPV6_ROUTER_ALERT" }, +#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[] = { +#ifdef PACKET_ADD_MEMBERSHIP + { PACKET_ADD_MEMBERSHIP, "PACKET_ADD_MEMBERSHIP" }, +#endif +#ifdef PACKET_DROP_MEMBERSHIP + { PACKET_DROP_MEMBERSHIP, "PACKET_DROP_MEMBERSHIP"}, +#endif +#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 +#if defined(PACKET_COPY_THRESH) + { PACKET_COPY_THRESH, "PACKET_COPY_THRESH" }, +#endif +#if defined(PACKET_AUXDATA) + { PACKET_AUXDATA, "PACKET_AUXDATA" }, +#endif +#if defined(PACKET_ORIGDEV) + { PACKET_ORIGDEV, "PACKET_ORIGDEV" }, +#endif +#if defined(PACKET_VERSION) + { PACKET_VERSION, "PACKET_VERSION" }, +#endif +#if defined(PACKET_HDRLEN) + { PACKET_HDRLEN, "PACKET_HDRLEN" }, +#endif +#if defined(PACKET_RESERVE) + { PACKET_RESERVE, "PACKET_RESERVE" }, +#endif +#if defined(PACKET_TX_RING) + { PACKET_TX_RING, "PACKET_TX_RING" }, +#endif +#if defined(PACKET_LOSS) + { PACKET_LOSS, "PACKET_LOSS" }, +#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(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); + + memset(&addrbuf, 0, sizeof(addrbuf)); + if (umoven(tcp, addr, addrlen, addrbuf.pad) < 0) { + tprintf("{...}"); + return; + } + addrbuf.pad[sizeof(addrbuf.pad) - 1] = '\0'; + + tprintf("{sa_family="); + printxval(addrfams, addrbuf.sa.sa_family, "AF_???"); + tprintf(", "); + + switch (addrbuf.sa.sa_family) { + case AF_UNIX: + if (addrlen == 2) { + tprintf("NULL"); + } else if (addrbuf.sau.sun_path[0]) { + tprintf("path="); + printpathn(tcp, addr + 2, strlen(addrbuf.sau.sun_path)); + } else { + tprintf("path=@"); + printpathn(tcp, addr + 3, strlen(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(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=%u, cmsg_level=", (unsigned) 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 +do_msghdr(struct tcb *tcp, struct msghdr *msg) +{ + 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("}"); +} + +static void +printmsghdr(tcp, addr) +struct tcb *tcp; +long addr; +{ + struct msghdr msg; + + if (umove(tcp, addr, &msg) < 0) { + tprintf("%#lx", addr); + return; + } + do_msghdr(tcp, &msg); +} + +#ifdef LINUX +static void +printmmsghdr(struct tcb *tcp, long addr) +{ + struct mmsghdr { + struct msghdr msg_hdr; + unsigned msg_len; + } mmsg; + + if (umove(tcp, addr, &mmsg) < 0) { + tprintf("%#lx", addr); + return; + } + tprintf("{"); + do_msghdr(tcp, &mmsg.msg_hdr); + tprintf(", %u}", mmsg.msg_len); +} +#endif + +#endif /* HAVE_SENDMSG */ + +/* + * low bits of the socket type define real socket type, + * other bits are socket type flags. + */ +static void +tprint_sock_type(struct tcb *tcp, int flags) +{ + const char *str = xlookup(socktypes, flags & SOCK_TYPE_MASK); + + if (str) + { + tprintf("%s", str); + flags &= ~SOCK_TYPE_MASK; + if (!flags) + return; + tprintf("|"); + } + printflags(sock_type_flags, flags, "SOCK_???"); +} + +int +sys_socket(struct tcb *tcp) +{ + if (entering(tcp)) { + printxval(domains, tcp->u_arg[0], "PF_???"); + tprintf(", "); + tprint_sock_type(tcp, tcp->u_arg[1]); + 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; +} + +#ifdef SVR4 +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; +} +#endif /* SVR4 */ + +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; +} + +static int +do_accept(struct tcb *tcp, int flags_arg) +{ + if (entering(tcp)) { + tprintf("%ld, ", tcp->u_arg[0]); + return 0; + } + if (!tcp->u_arg[2]) + tprintf("%#lx, NULL", tcp->u_arg[1]); + else { + int len; + if (tcp->u_arg[1] == 0 || syserror(tcp) + || umove (tcp, tcp->u_arg[2], &len) < 0) { + tprintf("%#lx", tcp->u_arg[1]); + } else { + printsock(tcp, tcp->u_arg[1], len); + } + tprintf(", "); + printnum_int(tcp, tcp->u_arg[2], "%u"); + } + if (flags_arg >= 0) { + tprintf(", "); + printflags(sock_type_flags, tcp->u_arg[flags_arg], + "SOCK_???"); + } + return 0; +} + +int +sys_accept(struct tcb *tcp) +{ + return do_accept(tcp, -1); +} + +#ifdef LINUX +int +sys_accept4(struct tcb *tcp) +{ + return do_accept(tcp, 3); +} +#endif + +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; +} + +#ifdef LINUX +int +sys_recvmmsg(struct tcb *tcp) +{ + static char str[128]; + if (entering(tcp)) { + + tprintf("%ld, ", tcp->u_arg[0]); + if (verbose(tcp)) { + sprint_timespec(str, tcp, tcp->u_arg[4]); + tcp->auxstr = strdup(str); + } else { + tprintf("%#lx, %ld, ", tcp->u_arg[1], tcp->u_arg[2]); + printflags(msg_flags, tcp->u_arg[3], "MSG_???"); + tprintf(", "); + print_timespec(tcp, tcp->u_arg[4]); + } + return 0; + } else { + if (verbose(tcp)) { + if (syserror(tcp)) + tprintf("%#lx", tcp->u_arg[1]); + else + printmmsghdr(tcp, tcp->u_arg[1]); + tprintf(", %ld, ", tcp->u_arg[2]); + /* flags */ + printflags(msg_flags, tcp->u_arg[3], "MSG_???"); + /* timeout on entrance */ + tprintf(", %s", tcp->auxstr ? tcp->auxstr : "{...}"); + free((void *) tcp->auxstr); + tcp->auxstr = NULL; + } + if (syserror(tcp)) + return 0; + if (tcp->u_rval == 0) { + tcp->auxstr = "Timeout"; + return RVAL_STR; + } + if (!verbose(tcp)) + return 0; + /* timeout on exit */ + strcpy(str, "left "); + sprint_timespec(str + strlen(str), tcp, tcp->u_arg[4]); + tcp->auxstr = str; + return RVAL_STR; + } +} +#endif + +#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); +} + +static int +do_pipe(struct tcb *tcp, int flags_arg) +{ + if (exiting(tcp)) { + if (syserror(tcp)) { + tprintf("%#lx", tcp->u_arg[0]); + } else { +#if defined(LINUX) && !defined(SPARC) && !defined(SPARC64) && !defined(SH) && !defined(IA64) + int fds[2]; + + 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) + tprintf("[%lu, %lu]", tcp->u_rval, getrval2(tcp)); +#else + tprintf("%#lx", tcp->u_arg[0]); +#endif + } + if (flags_arg >= 0) { + tprintf(", "); + printflags(open_mode_flags, tcp->u_arg[flags_arg], "O_???"); + } + } + return 0; +} + +int +sys_pipe(struct tcb *tcp) +{ + return do_pipe(tcp, -1); +} + +#ifdef LINUX +int +sys_pipe2(struct tcb *tcp) +{ + return do_pipe(tcp, 1); +} +#endif + +int +sys_socketpair(struct tcb *tcp) +{ +#ifdef LINUX + int fds[2]; +#endif + + if (entering(tcp)) { + printxval(domains, tcp->u_arg[0], "PF_???"); + tprintf(", "); + tprint_sock_type(tcp, tcp->u_arg[1]); + 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(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; + } + tprintf (", "); + } 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; + case SOL_PACKET: + switch (tcp->u_arg[2]) { +#ifdef PACKET_STATISTICS + case PACKET_STATISTICS: + if (len == sizeof(struct tpacket_stats)) { + struct tpacket_stats stats; + if (umove (tcp, + tcp->u_arg[3], + &stats) < 0) + break; + tprintf("{packets=%u, drops=%u}, " + "[%d]", + stats.tp_packets, + stats.tp_drops, + len); + return 0; + } + break; +#endif + } + break; + } + + if (len == sizeof (int)) { + printnum_int(tcp, tcp->u_arg[3], "%d"); + } + 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 */ + switch (name) { +#ifdef PACKET_RX_RING + case PACKET_RX_RING: +#endif +#ifdef PACKET_TX_RING + case PACKET_TX_RING: +#endif +#if defined(PACKET_RX_RING) || defined(PACKET_TX_RING) + if (len == sizeof(struct tpacket_req)) { + struct tpacket_req req; + if (umove(tcp, addr, &req) < 0) + break; + tprintf(", {block_size=%u, block_nr=%u, frame_size=%u, frame_nr=%u}", + req.tp_block_size, + req.tp_block_nr, + req.tp_frame_size, + req.tp_frame_nr); + return 0; + } + break; +#endif /* PACKET_RX_RING || PACKET_TX_RING */ + } + 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_int (tcp, addr, "%d"); + } + 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; + +} + +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 /* UNIXWARE */
diff --git a/strace-4.5.20/proc.c b/strace-4.5.20/proc.c new file mode 100644 index 0000000..04ef8fb --- /dev/null +++ b/strace-4.5.20/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$ + */ + +#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/strace-4.5.20/process.c b/strace-4.5.20/process.c new file mode 100644 index 0000000..c69e45e --- /dev/null +++ b/strace-4.5.20/process.c
@@ -0,0 +1,3645 @@ +/* + * 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$ + */ + +#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> +#include <sys/user.h> +#include <sys/syscall.h> +#include <signal.h> +#ifdef SUNOS4 +#include <machine/reg.h> +#endif /* SUNOS4 */ + +#ifdef FREEBSD +#include <sys/ptrace.h> +#endif + +#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 +#ifdef 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 /* LINUX */ + +#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> + +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 +#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_DUMPABLE + { PR_GET_DUMPABLE, "PR_GET_DUMPABLE" }, +#endif +#ifdef PR_SET_DUMPABLE + { PR_SET_DUMPABLE, "PR_SET_DUMPABLE" }, +#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_KEEPCAPS" }, +#endif +#ifdef PR_SET_KEEPCAPS + { PR_SET_KEEPCAPS, "PR_SET_KEEPCAPS" }, +#endif +#ifdef PR_GET_FPEMU + { PR_GET_FPEMU, "PR_GET_FPEMU" }, +#endif +#ifdef PR_SET_FPEMU + { PR_SET_FPEMU, "PR_SET_FPEMU" }, +#endif +#ifdef PR_GET_FPEXC + { PR_GET_FPEXC, "PR_GET_FPEXC" }, +#endif +#ifdef PR_SET_FPEXC + { PR_SET_FPEXC, "PR_SET_FPEXC" }, +#endif +#ifdef PR_GET_TIMING + { PR_GET_TIMING, "PR_GET_TIMING" }, +#endif +#ifdef PR_SET_TIMING + { PR_SET_TIMING, "PR_SET_TIMING" }, +#endif +#ifdef PR_SET_NAME + { PR_SET_NAME, "PR_SET_NAME" }, +#endif +#ifdef PR_GET_NAME + { PR_GET_NAME, "PR_GET_NAME" }, +#endif +#ifdef PR_GET_ENDIAN + { PR_GET_ENDIAN, "PR_GET_ENDIAN" }, +#endif +#ifdef PR_SET_ENDIAN + { PR_SET_ENDIAN, "PR_SET_ENDIAN" }, +#endif +#ifdef PR_GET_SECCOMP + { PR_GET_SECCOMP, "PR_GET_SECCOMP" }, +#endif +#ifdef PR_SET_SECCOMP + { PR_SET_SECCOMP, "PR_SET_SECCOMP" }, +#endif +#ifdef PR_GET_TSC + { PR_GET_TSC, "PR_GET_TSC" }, +#endif +#ifdef PR_SET_TSC + { PR_SET_TSC, "PR_SET_TSC" }, +#endif +#ifdef PR_GET_SECUREBITS + { PR_GET_SECUREBITS, "PR_GET_SECUREBITS" }, +#endif +#ifdef PR_SET_SECUREBITS + { PR_SET_SECUREBITS, "PR_SET_SECUREBITS" }, +#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_PDEATHSIG + case PR_SET_PDEATHSIG: + tprintf(", %lu", tcp->u_arg[1]); + break; +#endif +#ifdef PR_GET_PDEATHSIG + case PR_GET_PDEATHSIG: + break; +#endif +#ifdef PR_SET_DUMPABLE + case PR_SET_DUMPABLE: + tprintf(", %lu", tcp->u_arg[1]); + break; +#endif +#ifdef PR_GET_DUMPABLE + case PR_GET_DUMPABLE: + 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 +#ifdef PR_SET_KEEPCAPS + case PR_SET_KEEPCAPS: + tprintf(", %lu", tcp->u_arg[1]); + break; +#endif +#ifdef PR_GET_KEEPCAPS + case PR_GET_KEEPCAPS: + 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: + if (umove(tcp, tcp->u_arg[1], &i) < 0) + tprintf(", %#lx", tcp->u_arg[1]); + else + tprintf(", {%u}", i); + break; +#endif +#ifdef PR_GET_DUMPABLE + case PR_GET_DUMPABLE: + return RVAL_UDECIMAL; +#endif +#ifdef PR_GET_UNALIGN + case PR_GET_UNALIGN: + if (syserror(tcp) || umove(tcp, tcp->u_arg[1], &i) < 0) + break; + tcp->auxstr = unalignctl_string(i); + return RVAL_STR; +#endif +#ifdef PR_GET_KEEPCAPS + case PR_GET_KEEPCAPS: + return RVAL_UDECIMAL; +#endif + default: + break; + } + } + return 0; +} +#endif /* HAVE_PRCTL */ + +#if defined(FREEBSD) || defined(SUNOS4) || defined(SVR4) +int +sys_gethostid(tcp) +struct tcb *tcp; +{ + if (exiting(tcp)) + return RVAL_HEX; + return 0; +} +#endif /* FREEBSD || SUNOS4 || SVR4 */ + +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; +} + +#if defined(ALPHA) || defined(FREEBSD) || defined(SUNOS4) || defined(SVR4) +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; +} +#endif /* ALPHA || FREEBSD || SUNOS4 || SVR4 */ + +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(); + 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 void +fork_tcb(struct tcb *tcp) +{ + if (nprocs == tcbtabsize) + expand_tcbtab(); + + tcp->flags |= TCB_FOLLOWFORK; +} + +#ifdef USE_PROCFS + +int +sys_fork(struct tcb *tcp) +{ + if (exiting(tcp) && !syserror(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 (!syserror(tcp)) { + 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; + fork_tcb(tcp); + if (syserror(tcp)) + return 0; + tcpchild = alloctcb(tcp->u_rval); + 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 || defined CRISV10 || defined CRISV32 +# 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; +} + +int +sys_unshare(struct tcb *tcp) +{ + if (entering(tcp)) + printflags(clone_flags, tcp->u_arg[0], "CLONE_???"); + return 0; +} +#endif /* LINUX */ + +int +sys_fork(tcp) +struct tcb *tcp; +{ + if (exiting(tcp)) + return RVAL_UDECIMAL; + return 0; +} + +int +change_syscall(struct tcb *tcp, int new) +{ +#ifdef 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 pt_regs regs; + if (ptrace(PTRACE_GETREGS, tcp->pid, (char*)®s, 0)<0) + return -1; + regs.u_regs[U_REG_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(AVR32) + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_R8), new) < 0) + return -1; + return 0; +#elif defined(BFIN) + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_P0), new)<0) + return -1; + return 0; +#elif defined(IA64) + if (ia32) { + switch (new) { + case 2: + break; /* x86 SYS_fork */ + case SYS_clone: + new = 120; + break; + default: + fprintf(stderr, "%s: unexpected syscall %d\n", + __FUNCTION__, new); + return -1; + } + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_R1), new)<0) + return -1; + } else if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_R15), new)<0) + return -1; + return 0; +#elif defined(HPPA) + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_GR20), new)<0) + return -1; + return 0; +#elif defined(SH) + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*(REG_REG0+3)), new)<0) + return -1; + return 0; +#elif defined(SH64) + /* Top half of reg encodes the no. of args n as 0x1n. + Assume 0 args as kernel never actually checks... */ + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_SYSCALL), + 0x100000 | new) < 0) + return -1; + return 0; +#elif defined(CRISV10) || defined(CRISV32) + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*PT_R9), new) < 0) + return -1; + return 0; +#elif defined(ARM) + /* Some kernels support this, some (pre-2.6.16 or so) don't. */ +# ifndef PTRACE_SET_SYSCALL +# define PTRACE_SET_SYSCALL 23 +# endif + + if (ptrace (PTRACE_SET_SYSCALL, tcp->pid, 0, new & 0xffff) != 0) + return -1; + + return 0; +#elif defined(TILE) + if (ptrace(PTRACE_POKEUSER, tcp->pid, + (char*)PTREGS_OFFSET_REG(0), + new) != 0) + return -1; + return 0; +#else +#warning Do not know how to handle change_syscall for this architecture +#endif /* architecture */ +#endif /* LINUX */ + return -1; +} + +#ifdef LINUX +int +internal_fork(struct tcb *tcp) +{ + if (entering(tcp)) { + if (!followfork) + return 0; + fork_tcb(tcp); + if (setbpt(tcp) < 0) + return 0; + } else { + struct tcb *tcpchild; + int pid; + int bpt; + + if (!(tcp->flags & TCB_FOLLOWFORK)) + return 0; + + bpt = tcp->flags & TCB_BPTSET; + + 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 /* CLONE_PTRACE */ + { + fork_tcb(tcp); + tcpchild = alloctcb(pid); + } + +#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 /* !CLONE_PTRACE */ + + 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_restart(PTRACE_SYSCALL, tcpchild, 0) < 0) + return -1; + + if (!qflag) + fprintf(stderr, "\ +Process %u resumed (parent %d ready)\n", + pid, tcp->pid); + } + else { + 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 /* TCB_CLONE_THREAD */ + } + return 0; +} + +#else /* !LINUX */ + +int +internal_fork(tcp) +struct tcb *tcp; +{ + 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 (change_syscall(tcp, SYS_fork) < 0) + dont_follow = 1; + } +#endif + if (entering(tcp)) { + if (!followfork || dont_follow) + return 0; + fork_tcb(tcp); + 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; + fork_tcb(tcp); + tcpchild = alloctcb(pid); +#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); + } + tcpchild->parent = tcp; + tcp->nchildren++; + if (!qflag) + fprintf(stderr, "Process %d attached\n", pid); + } + return 0; +} + +#endif /* !LINUX */ + +#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(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 */ + +#if defined(ALPHA) || defined(SUNOS4) || defined(SVR4) +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; +} +#endif /* ALPHA || SUNOS4 || SVR4 */ + +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(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) { + const 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 /* UNIXWARE */ + + +static void +printargv(tcp, addr) +struct tcb *tcp; +long addr; +{ + union { + unsigned int p32; + unsigned long p64; + char data[sizeof(long)]; + } cp; + char *sep; + int n = 0; + + cp.p64 = 1; + for (sep = ""; !abbrev(tcp) || n < max_strlen / 2; sep = ", ", ++n) { + if (umoven(tcp, addr, personality_wordsize[current_personality], + cp.data) < 0) { + tprintf("%#lx", addr); + return; + } + if (personality_wordsize[current_personality] == 4) + cp.p64 = cp.p32; + if (cp.p64 == 0) + break; + tprintf("%s", sep); + printstr(tcp, cp.p64, -1); + addr += personality_wordsize[current_personality]; + } + if (cp.p64) + tprintf("%s...", sep); +} + +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"); +} + +#if defined(SPARC) || defined(SPARC64) || defined(SUNOS4) +int +sys_execv(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + if (!verbose(tcp)) + tprintf(", %#lx", tcp->u_arg[1]); + else { + tprintf(", ["); + printargv(tcp, tcp->u_arg[1]); + tprintf("]"); + } + } + return 0; +} +#endif /* SPARC || SPARC64 || SUNOS4 */ + +int +sys_execve(struct tcb *tcp) +{ + if (entering(tcp)) { + printpath(tcp, tcp->u_arg[0]); + if (!verbose(tcp)) + tprintf(", %#lx", tcp->u_arg[1]); + 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 WCOREDUMP +# define WCOREDUMP(status) ((status) & 0200) +#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(struct tcb *tcp, int n, int bitness) +{ + int status; + int exited = 0; + + if (entering(tcp)) { +#ifdef LINUX + /* On Linux, kernel-side pid_t is typedef'ed to int + * on all arches. Also, glibc-2.8 truncates wait3 and wait4 + * pid argument to int on 64bit arches, producing, + * for example, wait4(4294967295, ...) instead of -1 + * in strace. We have to use int here, not long. + */ + int pid = tcp->u_arg[0]; + tprintf("%d, ", pid); +#else + /* + * Sign-extend a 32-bit value when that's what it is. + */ + long pid = tcp->u_arg[0]; + if (personality_wordsize[current_personality] < sizeof pid) + pid = (long) (int) pid; + tprintf("%ld, ", pid); +#endif + } 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 ALPHA + 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) || + (child->flags & TCB_EXITING)) + 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 +#endif + 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 PTRACE_SETOPTIONS + { PTRACE_SETOPTIONS, "PTRACE_SETOPTIONS", }, +# endif +# ifdef PTRACE_GETEVENTMSG + { PTRACE_GETEVENTMSG, "PTRACE_GETEVENTMSG", }, +# endif +# ifdef PTRACE_GETSIGINFO + { PTRACE_GETSIGINFO, "PTRACE_GETSIGINFO", }, +# endif +# ifdef PTRACE_SETSIGINFO + { PTRACE_SETSIGINFO, "PTRACE_SETSIGINFO", }, +# endif +# ifdef PTRACE_SET_SYSCALL + { PTRACE_SET_SYSCALL, "PTRACE_SET_SYSCALL", }, +# 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_22" }, + { PTRACE_23, "PTRACE_3" }, +# 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 +# ifdef PTRACE_SETOPTIONS +static const struct xlat ptrace_setoptions_flags[] = { +# ifdef PTRACE_O_TRACESYSGOOD + { PTRACE_O_TRACESYSGOOD,"PTRACE_O_TRACESYSGOOD" }, +# endif +# ifdef PTRACE_O_TRACEFORK + { PTRACE_O_TRACEFORK, "PTRACE_O_TRACEFORK" }, +# endif +# ifdef PTRACE_O_TRACEVFORK + { PTRACE_O_TRACEVFORK, "PTRACE_O_TRACEVFORK" }, +# endif +# ifdef PTRACE_O_TRACECLONE + { PTRACE_O_TRACECLONE, "PTRACE_O_TRACECLONE" }, +# endif +# ifdef PTRACE_O_TRACEEXEC + { PTRACE_O_TRACEEXEC, "PTRACE_O_TRACEEXEC" }, +# endif +# ifdef PTRACE_O_TRACEVFORKDONE + { PTRACE_O_TRACEVFORKDONE,"PTRACE_O_TRACEVFORKDONE"}, +# endif +# ifdef PTRACE_O_TRACEEXIT + { PTRACE_O_TRACEEXIT, "PTRACE_O_TRACEEXIT" }, +# endif + { 0, NULL }, +}; +# endif /* PTRACE_SETOPTIONS */ +# endif /* !FREEBSD */ + +# ifndef FREEBSD +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" }, +# elif 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 +# elif defined(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" }, +# elif defined(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" }, +# elif defined(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" }, +# elif defined(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" }, + { 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" }, +# elif defined(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" }, +# elif defined(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" }, +# elif defined(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)" }, +# elif defined(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" }, +# elif defined(AVR32) + { uoff(regs.sr), "sr" }, + { uoff(regs.pc), "pc" }, + { uoff(regs.lr), "lr" }, + { uoff(regs.sp), "sp" }, + { uoff(regs.r12), "r12" }, + { uoff(regs.r11), "r11" }, + { uoff(regs.r10), "r10" }, + { uoff(regs.r9), "r9" }, + { uoff(regs.r8), "r8" }, + { uoff(regs.r7), "r7" }, + { uoff(regs.r6), "r6" }, + { uoff(regs.r5), "r5" }, + { uoff(regs.r4), "r4" }, + { uoff(regs.r3), "r3" }, + { uoff(regs.r2), "r2" }, + { uoff(regs.r1), "r1" }, + { uoff(regs.r0), "r0" }, + { uoff(regs.r12_orig), "orig_r12" }, +# elif defined(MIPS) + { 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, "r29" }, + { 30, "r30" }, + { 31, "r31" }, + { 32, "f0" }, + { 33, "f1" }, + { 34, "f2" }, + { 35, "f3" }, + { 36, "f4" }, + { 37, "f5" }, + { 38, "f6" }, + { 39, "f7" }, + { 40, "f8" }, + { 41, "f9" }, + { 42, "f10" }, + { 43, "f11" }, + { 44, "f12" }, + { 45, "f13" }, + { 46, "f14" }, + { 47, "f15" }, + { 48, "f16" }, + { 49, "f17" }, + { 50, "f18" }, + { 51, "f19" }, + { 52, "f20" }, + { 53, "f21" }, + { 54, "f22" }, + { 55, "f23" }, + { 56, "f24" }, + { 57, "f25" }, + { 58, "f26" }, + { 59, "f27" }, + { 60, "f28" }, + { 61, "f29" }, + { 62, "f30" }, + { 63, "f31" }, + { 64, "pc" }, + { 65, "cause" }, + { 66, "badvaddr" }, + { 67, "mmhi" }, + { 68, "mmlo" }, + { 69, "fpcsr" }, + { 70, "fpeir" }, +# elif defined(TILE) + { PTREGS_OFFSET_REG(0), "r0" }, + { PTREGS_OFFSET_REG(1), "r1" }, + { PTREGS_OFFSET_REG(2), "r2" }, + { PTREGS_OFFSET_REG(3), "r3" }, + { PTREGS_OFFSET_REG(4), "r4" }, + { PTREGS_OFFSET_REG(5), "r5" }, + { PTREGS_OFFSET_REG(6), "r6" }, + { PTREGS_OFFSET_REG(7), "r7" }, + { PTREGS_OFFSET_REG(8), "r8" }, + { PTREGS_OFFSET_REG(9), "r9" }, + { PTREGS_OFFSET_REG(10), "r10" }, + { PTREGS_OFFSET_REG(11), "r11" }, + { PTREGS_OFFSET_REG(12), "r12" }, + { PTREGS_OFFSET_REG(13), "r13" }, + { PTREGS_OFFSET_REG(14), "r14" }, + { PTREGS_OFFSET_REG(15), "r15" }, + { PTREGS_OFFSET_REG(16), "r16" }, + { PTREGS_OFFSET_REG(17), "r17" }, + { PTREGS_OFFSET_REG(18), "r18" }, + { PTREGS_OFFSET_REG(19), "r19" }, + { PTREGS_OFFSET_REG(20), "r20" }, + { PTREGS_OFFSET_REG(21), "r21" }, + { PTREGS_OFFSET_REG(22), "r22" }, + { PTREGS_OFFSET_REG(23), "r23" }, + { PTREGS_OFFSET_REG(24), "r24" }, + { PTREGS_OFFSET_REG(25), "r25" }, + { PTREGS_OFFSET_REG(26), "r26" }, + { PTREGS_OFFSET_REG(27), "r27" }, + { PTREGS_OFFSET_REG(28), "r28" }, + { PTREGS_OFFSET_REG(29), "r29" }, + { PTREGS_OFFSET_REG(30), "r30" }, + { PTREGS_OFFSET_REG(31), "r31" }, + { PTREGS_OFFSET_REG(32), "r32" }, + { PTREGS_OFFSET_REG(33), "r33" }, + { PTREGS_OFFSET_REG(34), "r34" }, + { PTREGS_OFFSET_REG(35), "r35" }, + { PTREGS_OFFSET_REG(36), "r36" }, + { PTREGS_OFFSET_REG(37), "r37" }, + { PTREGS_OFFSET_REG(38), "r38" }, + { PTREGS_OFFSET_REG(39), "r39" }, + { PTREGS_OFFSET_REG(40), "r40" }, + { PTREGS_OFFSET_REG(41), "r41" }, + { PTREGS_OFFSET_REG(42), "r42" }, + { PTREGS_OFFSET_REG(43), "r43" }, + { PTREGS_OFFSET_REG(44), "r44" }, + { PTREGS_OFFSET_REG(45), "r45" }, + { PTREGS_OFFSET_REG(46), "r46" }, + { PTREGS_OFFSET_REG(47), "r47" }, + { PTREGS_OFFSET_REG(48), "r48" }, + { PTREGS_OFFSET_REG(49), "r49" }, + { PTREGS_OFFSET_REG(50), "r50" }, + { PTREGS_OFFSET_REG(51), "r51" }, + { PTREGS_OFFSET_REG(52), "r52" }, + { PTREGS_OFFSET_TP, "tp" }, + { PTREGS_OFFSET_SP, "sp" }, + { PTREGS_OFFSET_LR, "lr" }, + { PTREGS_OFFSET_PC, "pc" }, + { PTREGS_OFFSET_EX1, "ex1" }, + { PTREGS_OFFSET_FAULTNUM, "faultnum" }, + { PTREGS_OFFSET_ORIG_R0, "orig_r0" }, + { PTREGS_OFFSET_FLAGS, "flags" }, +# endif +# ifdef CRISV10 + { 4*PT_FRAMETYPE, "4*PT_FRAMETYPE" }, + { 4*PT_ORIG_R10, "4*PT_ORIG_R10" }, + { 4*PT_R13, "4*PT_R13" }, + { 4*PT_R12, "4*PT_R12" }, + { 4*PT_R11, "4*PT_R11" }, + { 4*PT_R10, "4*PT_R10" }, + { 4*PT_R9, "4*PT_R9" }, + { 4*PT_R8, "4*PT_R8" }, + { 4*PT_R7, "4*PT_R7" }, + { 4*PT_R6, "4*PT_R6" }, + { 4*PT_R5, "4*PT_R5" }, + { 4*PT_R4, "4*PT_R4" }, + { 4*PT_R3, "4*PT_R3" }, + { 4*PT_R2, "4*PT_R2" }, + { 4*PT_R1, "4*PT_R1" }, + { 4*PT_R0, "4*PT_R0" }, + { 4*PT_MOF, "4*PT_MOF" }, + { 4*PT_DCCR, "4*PT_DCCR" }, + { 4*PT_SRP, "4*PT_SRP" }, + { 4*PT_IRP, "4*PT_IRP" }, + { 4*PT_CSRINSTR, "4*PT_CSRINSTR" }, + { 4*PT_CSRADDR, "4*PT_CSRADDR" }, + { 4*PT_CSRDATA, "4*PT_CSRDATA" }, + { 4*PT_USP, "4*PT_USP" }, +# endif +# ifdef CRISV32 + { 4*PT_ORIG_R10, "4*PT_ORIG_R10" }, + { 4*PT_R0, "4*PT_R0" }, + { 4*PT_R1, "4*PT_R1" }, + { 4*PT_R2, "4*PT_R2" }, + { 4*PT_R3, "4*PT_R3" }, + { 4*PT_R4, "4*PT_R4" }, + { 4*PT_R5, "4*PT_R5" }, + { 4*PT_R6, "4*PT_R6" }, + { 4*PT_R7, "4*PT_R7" }, + { 4*PT_R8, "4*PT_R8" }, + { 4*PT_R9, "4*PT_R9" }, + { 4*PT_R10, "4*PT_R10" }, + { 4*PT_R11, "4*PT_R11" }, + { 4*PT_R12, "4*PT_R12" }, + { 4*PT_R13, "4*PT_R13" }, + { 4*PT_ACR, "4*PT_ACR" }, + { 4*PT_SRS, "4*PT_SRS" }, + { 4*PT_MOF, "4*PT_MOF" }, + { 4*PT_SPC, "4*PT_SPC" }, + { 4*PT_CCS, "4*PT_CCS" }, + { 4*PT_SRP, "4*PT_SRP" }, + { 4*PT_ERP, "4*PT_ERP" }, + { 4*PT_EXS, "4*PT_EXS" }, + { 4*PT_EDA, "4*PT_EDA" }, + { 4*PT_USP, "4*PT_USP" }, + { 4*PT_PPC, "4*PT_PPC" }, + { 4*PT_BP_CTRL, "4*PT_BP_CTRL" }, + { 4*PT_BP+4, "4*PT_BP+4" }, + { 4*PT_BP+8, "4*PT_BP+8" }, + { 4*PT_BP+12, "4*PT_BP+12" }, + { 4*PT_BP+16, "4*PT_BP+16" }, + { 4*PT_BP+20, "4*PT_BP+20" }, + { 4*PT_BP+24, "4*PT_BP+24" }, + { 4*PT_BP+28, "4*PT_BP+28" }, + { 4*PT_BP+32, "4*PT_BP+32" }, + { 4*PT_BP+36, "4*PT_BP+36" }, + { 4*PT_BP+40, "4*PT_BP+40" }, + { 4*PT_BP+44, "4*PT_BP+44" }, + { 4*PT_BP+48, "4*PT_BP+48" }, + { 4*PT_BP+52, "4*PT_BP+52" }, + { 4*PT_BP+56, "4*PT_BP+56" }, +# endif + +# if !defined(SPARC) && !defined(HPPA) && !defined(POWERPC) \ + && !defined(ALPHA) && !defined(IA64) \ + && !defined(CRISV10) && !defined(CRISV32) +# if !defined(S390) && !defined(S390X) && !defined(MIPS) && !defined(SPARC64) && !defined(AVR32) && !defined(BFIN) && !defined(TILE) + { uoff(u_fpvalid), "offsetof(struct user, u_fpvalid)" }, +# endif +# if defined(I386) || defined(X86_64) + { uoff(i387), "offsetof(struct user, i387)" }, +# endif +# if defined(M68K) + { uoff(m68kfp), "offsetof(struct user, m68kfp)" }, +# endif + { uoff(u_tsize), "offsetof(struct user, u_tsize)" }, + { uoff(u_dsize), "offsetof(struct user, u_dsize)" }, + { uoff(u_ssize), "offsetof(struct user, u_ssize)" }, +# if !defined(SPARC64) + { uoff(start_code), "offsetof(struct user, start_code)" }, +# endif +# if defined(AVR32) || defined(SH64) + { uoff(start_data), "offsetof(struct user, start_data)" }, +# endif +# if !defined(SPARC64) + { uoff(start_stack), "offsetof(struct user, start_stack)" }, +# endif + { uoff(signal), "offsetof(struct user, signal)" }, +# if !defined(AVR32) && !defined(S390) && !defined(S390X) && !defined(MIPS) && !defined(SH) && !defined(SH64) && !defined(SPARC64) && !defined(TILE) + { uoff(reserved), "offsetof(struct user, reserved)" }, +# endif +# if !defined(SPARC64) + { uoff(u_ar0), "offsetof(struct user, u_ar0)" }, +# endif +# if !defined(ARM) && !defined(AVR32) && !defined(MIPS) && !defined(S390) && !defined(S390X) && !defined(SPARC64) && !defined(BFIN) && !defined(TILE) + { uoff(u_fpstate), "offsetof(struct user, u_fpstate)" }, +# endif + { uoff(magic), "offsetof(struct user, magic)" }, + { uoff(u_comm), "offsetof(struct user, u_comm)" }, +# if defined(I386) || defined(X86_64) + { uoff(u_debugreg), "offsetof(struct user, u_debugreg)" }, +# endif +# endif /* !defined(many arches) */ + +# 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 /* !FREEBSD */ + +int +sys_ptrace(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]) { +# ifndef IA64 + case PTRACE_PEEKDATA: + case PTRACE_PEEKTEXT: + case PTRACE_PEEKUSER: + break; +# endif + case PTRACE_CONT: + case PTRACE_SINGLESTEP: + case PTRACE_SYSCALL: + case PTRACE_DETACH: + printsignal(tcp->u_arg[3]); + break; +# ifdef PTRACE_SETOPTIONS + case PTRACE_SETOPTIONS: + printflags(ptrace_setoptions_flags, tcp->u_arg[3], "PTRACE_O_???"); + break; +# endif +# ifdef PTRACE_SETSIGINFO + case PTRACE_SETSIGINFO: { + siginfo_t si; + if (!tcp->u_arg[3]) + tprintf("NULL"); + else if (syserror(tcp)) + tprintf("%#lx", tcp->u_arg[3]); + else if (umove(tcp, tcp->u_arg[3], &si) < 0) + tprintf("{???}"); + else + printsiginfo(&si, verbose(tcp)); + break; + } +# endif +# ifdef PTRACE_GETSIGINFO + case PTRACE_GETSIGINFO: + /* Don't print anything, do it at syscall return. */ + break; +# endif + default: + tprintf("%#lx", tcp->u_arg[3]); + break; + } + } else { + switch (tcp->u_arg[0]) { + case PTRACE_PEEKDATA: + case PTRACE_PEEKTEXT: + case PTRACE_PEEKUSER: +# ifdef IA64 + return RVAL_HEX; +# else + printnum(tcp, tcp->u_arg[3], "%#lx"); + break; +# endif +# ifdef PTRACE_GETSIGINFO + case PTRACE_GETSIGINFO: { + siginfo_t si; + if (!tcp->u_arg[3]) + tprintf("NULL"); + else if (syserror(tcp)) + tprintf("%#lx", tcp->u_arg[3]); + else if (umove(tcp, tcp->u_arg[3], &si) < 0) + tprintf("{???}"); + else + printsiginfo(&si, verbose(tcp)); + break; + } +# endif + } + } +# 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 +# ifndef FUTEX_CMP_REQUEUE +# define FUTEX_CMP_REQUEUE 4 +# endif +# ifndef FUTEX_WAKE_OP +# define FUTEX_WAKE_OP 5 +# endif +# ifndef FUTEX_LOCK_PI +# define FUTEX_LOCK_PI 6 +# define FUTEX_UNLOCK_PI 7 +# define FUTEX_TRYLOCK_PI 8 +# endif +# ifndef FUTEX_WAIT_BITSET +# define FUTEX_WAIT_BITSET 9 +# endif +# ifndef FUTEX_WAKE_BITSET +# define FUTEX_WAKE_BITSET 10 +# endif +# ifndef FUTEX_WAIT_REQUEUE_PI +# define FUTEX_WAIT_REQUEUE_PI 11 +# endif +# ifndef FUTEX_CMP_REQUEUE_PI +# define FUTEX_CMP_REQUEUE_PI 12 +# endif +# ifndef FUTEX_PRIVATE_FLAG +# define FUTEX_PRIVATE_FLAG 128 +# endif +# ifndef FUTEX_CLOCK_REALTIME +# define FUTEX_CLOCK_REALTIME 256 +# endif +static const struct xlat futexops[] = { + { FUTEX_WAIT, "FUTEX_WAIT" }, + { FUTEX_WAKE, "FUTEX_WAKE" }, + { FUTEX_FD, "FUTEX_FD" }, + { FUTEX_REQUEUE, "FUTEX_REQUEUE" }, + { FUTEX_CMP_REQUEUE, "FUTEX_CMP_REQUEUE" }, + { FUTEX_WAKE_OP, "FUTEX_WAKE_OP" }, + { FUTEX_LOCK_PI, "FUTEX_LOCK_PI" }, + { FUTEX_UNLOCK_PI, "FUTEX_UNLOCK_PI" }, + { FUTEX_TRYLOCK_PI, "FUTEX_TRYLOCK_PI" }, + { FUTEX_WAIT_BITSET, "FUTEX_WAIT_BITSET" }, + { FUTEX_WAKE_BITSET, "FUTEX_WAKE_BITSET" }, + { FUTEX_WAIT_REQUEUE_PI, "FUTEX_WAIT_REQUEUE_PI" }, + { FUTEX_CMP_REQUEUE_PI, "FUTEX_CMP_REQUEUE_PI" }, + { FUTEX_WAIT|FUTEX_PRIVATE_FLAG, "FUTEX_WAIT_PRIVATE" }, + { FUTEX_WAKE|FUTEX_PRIVATE_FLAG, "FUTEX_WAKE_PRIVATE" }, + { FUTEX_FD|FUTEX_PRIVATE_FLAG, "FUTEX_FD_PRIVATE" }, + { FUTEX_REQUEUE|FUTEX_PRIVATE_FLAG, "FUTEX_REQUEUE_PRIVATE" }, + { FUTEX_CMP_REQUEUE|FUTEX_PRIVATE_FLAG, "FUTEX_CMP_REQUEUE_PRIVATE" }, + { FUTEX_WAKE_OP|FUTEX_PRIVATE_FLAG, "FUTEX_WAKE_OP_PRIVATE" }, + { FUTEX_LOCK_PI|FUTEX_PRIVATE_FLAG, "FUTEX_LOCK_PI_PRIVATE" }, + { FUTEX_UNLOCK_PI|FUTEX_PRIVATE_FLAG, "FUTEX_UNLOCK_PI_PRIVATE" }, + { FUTEX_TRYLOCK_PI|FUTEX_PRIVATE_FLAG, "FUTEX_TRYLOCK_PI_PRIVATE" }, + { FUTEX_WAIT_BITSET|FUTEX_PRIVATE_FLAG, "FUTEX_WAIT_BITSET_PRIVATE" }, + { FUTEX_WAKE_BITSET|FUTEX_PRIVATE_FLAG, "FUTEX_WAKE_BITSET_PRIVATE" }, + { FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG, "FUTEX_WAIT_REQUEUE_PI_PRIVATE" }, + { FUTEX_CMP_REQUEUE_PI|FUTEX_PRIVATE_FLAG, "FUTEX_CMP_REQUEUE_PI_PRIVATE" }, + { FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, "FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME" }, + { FUTEX_WAIT_BITSET|FUTEX_PRIVATE_FLAG|FUTEX_CLOCK_REALTIME, "FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME" }, + { FUTEX_WAIT_REQUEUE_PI|FUTEX_CLOCK_REALTIME, "FUTEX_WAIT_REQUEUE_PI|FUTEX_CLOCK_REALTIME" }, + { FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG|FUTEX_CLOCK_REALTIME, "FUTEX_WAIT_REQUEUE_PI_PRIVATE|FUTEX_CLOCK_REALTIME" }, + { 0, NULL } +}; +# ifndef FUTEX_OP_SET +# define FUTEX_OP_SET 0 +# define FUTEX_OP_ADD 1 +# define FUTEX_OP_OR 2 +# define FUTEX_OP_ANDN 3 +# define FUTEX_OP_XOR 4 +# define FUTEX_OP_CMP_EQ 0 +# define FUTEX_OP_CMP_NE 1 +# define FUTEX_OP_CMP_LT 2 +# define FUTEX_OP_CMP_LE 3 +# define FUTEX_OP_CMP_GT 4 +# define FUTEX_OP_CMP_GE 5 +# endif +static const struct xlat futexwakeops[] = { + { FUTEX_OP_SET, "FUTEX_OP_SET" }, + { FUTEX_OP_ADD, "FUTEX_OP_ADD" }, + { FUTEX_OP_OR, "FUTEX_OP_OR" }, + { FUTEX_OP_ANDN, "FUTEX_OP_ANDN" }, + { FUTEX_OP_XOR, "FUTEX_OP_XOR" }, + { 0, NULL } +}; +static const struct xlat futexwakecmps[] = { + { FUTEX_OP_CMP_EQ, "FUTEX_OP_CMP_EQ" }, + { FUTEX_OP_CMP_NE, "FUTEX_OP_CMP_NE" }, + { FUTEX_OP_CMP_LT, "FUTEX_OP_CMP_LT" }, + { FUTEX_OP_CMP_LE, "FUTEX_OP_CMP_LE" }, + { FUTEX_OP_CMP_GT, "FUTEX_OP_CMP_GT" }, + { FUTEX_OP_CMP_GE, "FUTEX_OP_CMP_GE" }, + { 0, NULL } +}; + +int +sys_futex(struct tcb *tcp) +{ + if (entering(tcp)) { + long int cmd = tcp->u_arg[1] & 127; + tprintf("%p, ", (void *) tcp->u_arg[0]); + printxval(futexops, tcp->u_arg[1], "FUTEX_???"); + tprintf(", %ld", tcp->u_arg[2]); + if (cmd == FUTEX_WAKE_BITSET) + tprintf(", %lx", tcp->u_arg[5]); + else if (cmd == FUTEX_WAIT) { + tprintf(", "); + printtv(tcp, tcp->u_arg[3]); + } else if (cmd == FUTEX_WAIT_BITSET) { + tprintf(", "); + printtv(tcp, tcp->u_arg[3]); + tprintf(", %lx", tcp->u_arg[5]); + } else if (cmd == FUTEX_REQUEUE) + tprintf(", %ld, %p", tcp->u_arg[3], (void *) tcp->u_arg[4]); + else if (cmd == FUTEX_CMP_REQUEUE || cmd == FUTEX_CMP_REQUEUE_PI) + tprintf(", %ld, %p, %ld", tcp->u_arg[3], (void *) tcp->u_arg[4], tcp->u_arg[5]); + else if (cmd == FUTEX_WAKE_OP) { + tprintf(", %ld, %p, {", tcp->u_arg[3], (void *) tcp->u_arg[4]); + if ((tcp->u_arg[5] >> 28) & 8) + tprintf("FUTEX_OP_OPARG_SHIFT|"); + printxval(futexwakeops, (tcp->u_arg[5] >> 28) & 0x7, "FUTEX_OP_???"); + tprintf(", %ld, ", (tcp->u_arg[5] >> 12) & 0xfff); + if ((tcp->u_arg[5] >> 24) & 8) + tprintf("FUTEX_OP_OPARG_SHIFT|"); + printxval(futexwakecmps, (tcp->u_arg[5] >> 24) & 0x7, "FUTEX_OP_CMP_???"); + tprintf(", %ld}", tcp->u_arg[5] & 0xfff); + } else if (cmd == FUTEX_WAIT_REQUEUE_PI) { + tprintf(", "); + printtv(tcp, tcp->u_arg[3]); + tprintf(", %p", (void *) tcp->u_arg[4]); + } + } + return 0; +} + +static void +print_affinitylist(struct tcb *tcp, long list, unsigned int len) +{ + int first = 1; + unsigned long w, min_len; + + if (abbrev(tcp) && len / sizeof(w) > max_strlen) + min_len = len - max_strlen * sizeof(w); + else + min_len = 0; + for (; len >= sizeof(w) && len > min_len; + len -= sizeof(w), list += sizeof(w)) { + if (umove(tcp, list, &w) < 0) + break; + if (first) + tprintf("{"); + else + tprintf(", "); + first = 0; + tprintf("%lx", w); + } + if (len) { + if (first) + tprintf("%#lx", list); + else + tprintf(", %s}", (len >= sizeof(w) && len > min_len ? + "???" : "...")); + } else { + tprintf(first ? "{}" : "}"); + } +} + +int +sys_sched_setaffinity(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(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(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(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(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(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(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(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 /* X86_64 */ + + +int +sys_getcpu(struct tcb *tcp) +{ + if (exiting(tcp)) { + unsigned u; + if (tcp->u_arg[0] == 0) + tprintf("NULL, "); + else if (umove(tcp, tcp->u_arg[0], &u) < 0) + tprintf("%#lx, ", tcp->u_arg[0]); + else + tprintf("[%u], ", u); + if (tcp->u_arg[1] == 0) + tprintf("NULL, "); + else if (umove(tcp, tcp->u_arg[1], &u) < 0) + tprintf("%#lx, ", tcp->u_arg[1]); + else + tprintf("[%u], ", u); + tprintf("%#lx", tcp->u_arg[2]); + } + return 0; +} + +#endif /* LINUX */
diff --git a/strace-4.5.20/quota.c b/strace-4.5.20/quota.c new file mode 100644 index 0000000..f07d1a1 --- /dev/null +++ b/strace-4.5.20/quota.c
@@ -0,0 +1,736 @@ +/* + * 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) 2005, 2006 Dmitry V. Levin <ldv@altlinux.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$ + */ + +#include "defs.h" + +#ifdef LINUX + +#include <inttypes.h> + +#define SUBCMDMASK 0x00ff +#define SUBCMDSHIFT 8 +#define QCMD_CMD(cmd) ((u_int32_t)(cmd) >> SUBCMDSHIFT) +#define QCMD_TYPE(cmd) ((u_int32_t)(cmd) & SUBCMDMASK) + +#define OLD_CMD(cmd) ((u_int32_t)(cmd) << 8) +#define NEW_CMD(cmd) ((u_int32_t)(cmd) | 0x800000) +#define XQM_CMD(cmd) ((u_int32_t)(cmd) | ('X'<<8)) + +#define Q_V1_QUOTAON OLD_CMD(0x1) +#define Q_V1_QUOTAOFF OLD_CMD(0x2) +#define Q_V1_GETQUOTA OLD_CMD(0x3) +#define Q_V1_SETQUOTA OLD_CMD(0x4) +#define Q_V1_SETUSE OLD_CMD(0x5) +#define Q_V1_SYNC OLD_CMD(0x6) +#define Q_SETQLIM OLD_CMD(0x7) +#define Q_V1_GETSTATS OLD_CMD(0x8) +#define Q_V1_RSQUASH OLD_CMD(0x10) + +#define Q_V2_GETQUOTA OLD_CMD(0xD) +#define Q_V2_SETQUOTA OLD_CMD(0xE) +#define Q_V2_SETUSE OLD_CMD(0xF) +#define Q_V2_GETINFO OLD_CMD(0x9) +#define Q_V2_SETINFO OLD_CMD(0xA) +#define Q_V2_SETGRACE OLD_CMD(0xB) +#define Q_V2_SETFLAGS OLD_CMD(0xC) +#define Q_V2_GETSTATS OLD_CMD(0x11) + +#define Q_SYNC NEW_CMD(0x1) +#define Q_QUOTAON NEW_CMD(0x2) +#define Q_QUOTAOFF NEW_CMD(0x3) +#define Q_GETFMT NEW_CMD(0x4) +#define Q_GETINFO NEW_CMD(0x5) +#define Q_SETINFO NEW_CMD(0x6) +#define Q_GETQUOTA NEW_CMD(0x7) +#define Q_SETQUOTA NEW_CMD(0x8) + +#define Q_XQUOTAON XQM_CMD(0x1) +#define Q_XQUOTAOFF XQM_CMD(0x2) +#define Q_XGETQUOTA XQM_CMD(0x3) +#define Q_XSETQLIM XQM_CMD(0x4) +#define Q_XGETQSTAT XQM_CMD(0x5) +#define Q_XQUOTARM XQM_CMD(0x6) +#define Q_XQUOTASYNC XQM_CMD(0x7) + +static const struct xlat quotacmds[] = { + {Q_V1_QUOTAON, "Q_V1_QUOTAON"}, + {Q_V1_QUOTAOFF, "Q_V1_QUOTAOFF"}, + {Q_V1_GETQUOTA, "Q_V1_GETQUOTA"}, + {Q_V1_SETQUOTA, "Q_V1_SETQUOTA"}, + {Q_V1_SETUSE, "Q_V1_SETUSE"}, + {Q_V1_SYNC, "Q_V1_SYNC"}, + {Q_SETQLIM, "Q_SETQLIM"}, + {Q_V1_GETSTATS, "Q_V1_GETSTATS"}, + {Q_V1_RSQUASH, "Q_V1_RSQUASH"}, + + {Q_V2_GETQUOTA, "Q_V2_GETQUOTA"}, + {Q_V2_SETQUOTA, "Q_V2_SETQUOTA"}, + {Q_V2_SETUSE, "Q_V2_SETUSE"}, + {Q_V2_GETINFO, "Q_V2_GETINFO"}, + {Q_V2_SETINFO, "Q_V2_SETINFO"}, + {Q_V2_SETGRACE, "Q_V2_SETGRACE"}, + {Q_V2_SETFLAGS, "Q_V2_SETFLAGS"}, + {Q_V2_GETSTATS, "Q_V2_GETSTATS"}, + + {Q_SYNC, "Q_SYNC"}, + {Q_QUOTAON, "Q_QUOTAON"}, + {Q_QUOTAOFF, "Q_QUOTAOFF"}, + {Q_GETFMT, "Q_GETFMT"}, + {Q_GETINFO, "Q_GETINFO"}, + {Q_SETINFO, "Q_SETINFO"}, + {Q_GETQUOTA, "Q_GETQUOTA"}, + {Q_SETQUOTA, "Q_SETQUOTA"}, + + {Q_XQUOTAON, "Q_XQUOTAON"}, + {Q_XQUOTAOFF, "Q_XQUOTAOFF"}, + {Q_XGETQUOTA, "Q_XGETQUOTA"}, + {Q_XSETQLIM, "Q_XSETQLIM"}, + {Q_XGETQSTAT, "Q_XGETQSTAT"}, + {Q_XQUOTARM, "Q_XQUOTARM"}, + {Q_XQUOTASYNC, "Q_XQUOTASYNC"}, + + {0, NULL}, +}; + +#define USRQUOTA 0 +#define GRPQUOTA 1 + +static const struct xlat quotatypes[] = { + {USRQUOTA, "USRQUOTA"}, + {GRPQUOTA, "GRPQUOTA"}, + {0, NULL}, +}; + +/* Quota format identifiers */ +#define QFMT_VFS_OLD 1 +#define QFMT_VFS_V0 2 + +static const struct xlat quota_formats[] = { + {QFMT_VFS_OLD, "QFMT_VFS_OLD"}, + {QFMT_VFS_V0, "QFMT_VFS_V0"}, + {0, NULL}, +}; + +#define XFS_QUOTA_UDQ_ACCT (1<<0) /* user quota accounting */ +#define XFS_QUOTA_UDQ_ENFD (1<<1) /* user quota limits enforcement */ +#define XFS_QUOTA_GDQ_ACCT (1<<2) /* group quota accounting */ +#define XFS_QUOTA_GDQ_ENFD (1<<3) /* group quota limits enforcement */ + +#define XFS_USER_QUOTA (1<<0) /* user quota type */ +#define XFS_PROJ_QUOTA (1<<1) /* (IRIX) project quota type */ +#define XFS_GROUP_QUOTA (1<<2) /* group quota type */ + +static const struct xlat xfs_quota_flags[] = { + {XFS_QUOTA_UDQ_ACCT, "XFS_QUOTA_UDQ_ACCT"}, + {XFS_QUOTA_UDQ_ENFD, "XFS_QUOTA_UDQ_ENFD"}, + {XFS_QUOTA_GDQ_ACCT, "XFS_QUOTA_GDQ_ACCT"}, + {XFS_QUOTA_GDQ_ENFD, "XFS_QUOTA_GDQ_ENFD"}, + {0, NULL} +}; + +static const struct xlat xfs_dqblk_flags[] = { + {XFS_USER_QUOTA, "XFS_USER_QUOTA"}, + {XFS_PROJ_QUOTA, "XFS_PROJ_QUOTA"}, + {XFS_GROUP_QUOTA, "XFS_GROUP_QUOTA"}, + {0, NULL} +}; + +/* + * Following flags are used to specify which fields are valid + */ +#define QIF_BLIMITS 1 +#define QIF_SPACE 2 +#define QIF_ILIMITS 4 +#define QIF_INODES 8 +#define QIF_BTIME 16 +#define QIF_ITIME 32 + +static const struct xlat if_dqblk_valid[] = { + {QIF_BLIMITS, "QIF_BLIMITS"}, + {QIF_SPACE, "QIF_SPACE"}, + {QIF_ILIMITS, "QIF_ILIMITS"}, + {QIF_INODES, "QIF_INODES"}, + {QIF_BTIME, "QIF_BTIME"}, + {QIF_ITIME, "QIF_ITIME"}, + {0, NULL} +}; + +struct if_dqblk +{ + u_int64_t dqb_bhardlimit; + u_int64_t dqb_bsoftlimit; + u_int64_t dqb_curspace; + u_int64_t dqb_ihardlimit; + u_int64_t dqb_isoftlimit; + u_int64_t dqb_curinodes; + u_int64_t dqb_btime; + u_int64_t dqb_itime; + u_int32_t dqb_valid; +}; + +struct v1_dqblk +{ + u_int32_t dqb_bhardlimit; /* absolute limit on disk blks alloc */ + u_int32_t dqb_bsoftlimit; /* preferred limit on disk blks */ + u_int32_t dqb_curblocks; /* current block count */ + u_int32_t dqb_ihardlimit; /* maximum # allocated inodes */ + u_int32_t dqb_isoftlimit; /* preferred inode limit */ + u_int32_t dqb_curinodes; /* current # allocated inodes */ + time_t dqb_btime; /* time limit for excessive disk use */ + time_t dqb_itime; /* time limit for excessive files */ +}; + +struct v2_dqblk +{ + unsigned int dqb_ihardlimit; + unsigned int dqb_isoftlimit; + unsigned int dqb_curinodes; + unsigned int dqb_bhardlimit; + unsigned int dqb_bsoftlimit; + u_int64_t dqb_curspace; + time_t dqb_btime; + time_t dqb_itime; +}; + +struct xfs_dqblk +{ + int8_t d_version; /* version of this structure */ + int8_t d_flags; /* XFS_{USER,PROJ,GROUP}_QUOTA */ + u_int16_t d_fieldmask; /* field specifier */ + u_int32_t d_id; /* user, project, or group ID */ + u_int64_t d_blk_hardlimit; /* absolute limit on disk blks */ + u_int64_t d_blk_softlimit; /* preferred limit on disk blks */ + u_int64_t d_ino_hardlimit; /* maximum # allocated inodes */ + u_int64_t d_ino_softlimit; /* preferred inode limit */ + u_int64_t d_bcount; /* # disk blocks owned by the user */ + u_int64_t d_icount; /* # inodes owned by the user */ + int32_t d_itimer; /* zero if within inode limits */ + int32_t d_btimer; /* similar to above; for disk blocks */ + u_int16_t d_iwarns; /* # warnings issued wrt num inodes */ + u_int16_t d_bwarns; /* # warnings issued wrt disk blocks */ + int32_t d_padding2; /* padding2 - for future use */ + u_int64_t d_rtb_hardlimit; /* absolute limit on realtime blks */ + u_int64_t d_rtb_softlimit; /* preferred limit on RT disk blks */ + u_int64_t d_rtbcount; /* # realtime blocks owned */ + int32_t d_rtbtimer; /* similar to above; for RT disk blks */ + u_int16_t d_rtbwarns; /* # warnings issued wrt RT disk blks */ + int16_t d_padding3; /* padding3 - for future use */ + char d_padding4[8]; /* yet more padding */ +}; + +/* + * Following flags are used to specify which fields are valid + */ +#define IIF_BGRACE 1 +#define IIF_IGRACE 2 +#define IIF_FLAGS 4 + +static const struct xlat if_dqinfo_valid[] = { + {IIF_BGRACE, "IIF_BGRACE"}, + {IIF_IGRACE, "IIF_IGRACE"}, + {IIF_FLAGS, "IIF_FLAGS"}, + {0, NULL} +}; + +struct if_dqinfo +{ + u_int64_t dqi_bgrace; + u_int64_t dqi_igrace; + u_int32_t dqi_flags; + u_int32_t dqi_valid; +}; + +struct v2_dqinfo +{ + unsigned int dqi_bgrace; + unsigned int dqi_igrace; + unsigned int dqi_flags; + unsigned int dqi_blocks; + unsigned int dqi_free_blk; + unsigned int dqi_free_entry; +}; + +struct v1_dqstats +{ + u_int32_t lookups; + u_int32_t drops; + u_int32_t reads; + u_int32_t writes; + u_int32_t cache_hits; + u_int32_t allocated_dquots; + u_int32_t free_dquots; + u_int32_t syncs; +}; + +struct v2_dqstats +{ + u_int32_t lookups; + u_int32_t drops; + u_int32_t reads; + u_int32_t writes; + u_int32_t cache_hits; + u_int32_t allocated_dquots; + u_int32_t free_dquots; + u_int32_t syncs; + u_int32_t version; +}; + +typedef struct fs_qfilestat +{ + u_int64_t qfs_ino; /* inode number */ + u_int64_t qfs_nblks; /* number of BBs 512-byte-blks */ + u_int32_t qfs_nextents; /* number of extents */ +} fs_qfilestat_t; + +struct xfs_dqstats +{ + int8_t qs_version; /* version number for future changes */ + u_int16_t qs_flags; /* XFS_QUOTA_{U,P,G}DQ_{ACCT,ENFD} */ + int8_t qs_pad; /* unused */ + fs_qfilestat_t qs_uquota; /* user quota storage information */ + fs_qfilestat_t qs_gquota; /* group quota storage information */ + u_int32_t qs_incoredqs; /* number of dquots incore */ + int32_t qs_btimelimit; /* limit for blks timer */ + int32_t qs_itimelimit; /* limit for inodes timer */ + int32_t qs_rtbtimelimit; /* limit for rt blks timer */ + u_int16_t qs_bwarnlimit; /* limit for num warnings */ + u_int16_t qs_iwarnlimit; /* limit for num warnings */ +}; + +static void +decode_cmd_data(struct tcb *tcp, u_int32_t cmd, unsigned long data) +{ + switch (cmd) + { + case Q_GETQUOTA: + case Q_SETQUOTA: + { + struct if_dqblk dq; + + if (cmd == Q_GETQUOTA && syserror(tcp)) + { + tprintf("%#lx", data); + break; + } + if (umove(tcp, data, &dq) < 0) + { + tprintf("{???} %#lx", data); + break; + } + tprintf("{bhardlimit=%" PRIu64 ", ", dq.dqb_bhardlimit); + tprintf("bsoftlimit=%" PRIu64 ", ", dq.dqb_bsoftlimit); + tprintf("curspace=%" PRIu64 ", ", dq.dqb_curspace); + tprintf("ihardlimit=%" PRIu64 ", ", dq.dqb_ihardlimit); + tprintf("isoftlimit=%" PRIu64 ", ", dq.dqb_isoftlimit); + tprintf("curinodes=%" PRIu64 ", ", dq.dqb_curinodes); + if (!abbrev(tcp)) + { + tprintf("btime=%" PRIu64 ", ", dq.dqb_btime); + tprintf("itime=%" PRIu64 ", ", dq.dqb_itime); + tprintf("valid="); + printflags(if_dqblk_valid, + dq.dqb_valid, "QIF_???"); + tprintf("}"); + } else + tprintf("...}"); + break; + } + case Q_V1_GETQUOTA: + case Q_V1_SETQUOTA: + { + struct v1_dqblk dq; + + if (cmd == Q_V1_GETQUOTA && syserror(tcp)) + { + tprintf("%#lx", data); + break; + } + if (umove(tcp, data, &dq) < 0) + { + tprintf("{???} %#lx", data); + break; + } + tprintf("{bhardlimit=%u, ", dq.dqb_bhardlimit); + tprintf("bsoftlimit=%u, ", dq.dqb_bsoftlimit); + tprintf("curblocks=%u, ", dq.dqb_curblocks); + tprintf("ihardlimit=%u, ", dq.dqb_ihardlimit); + tprintf("isoftlimit=%u, ", dq.dqb_isoftlimit); + tprintf("curinodes=%u, ", dq.dqb_curinodes); + tprintf("btime=%lu, ", dq.dqb_btime); + tprintf("itime=%lu}", dq.dqb_itime); + break; + } + case Q_V2_GETQUOTA: + case Q_V2_SETQUOTA: + { + struct v2_dqblk dq; + + if (cmd == Q_V2_GETQUOTA && syserror(tcp)) + { + tprintf("%#lx", data); + break; + } + if (umove(tcp, data, &dq) < 0) + { + tprintf("{???} %#lx", data); + break; + } + tprintf("{ihardlimit=%u, ", dq.dqb_ihardlimit); + tprintf("isoftlimit=%u, ", dq.dqb_isoftlimit); + tprintf("curinodes=%u, ", dq.dqb_curinodes); + tprintf("bhardlimit=%u, ", dq.dqb_bhardlimit); + tprintf("bsoftlimit=%u, ", dq.dqb_bsoftlimit); + tprintf("curspace=%" PRIu64 ", ", dq.dqb_curspace); + tprintf("btime=%lu, ", dq.dqb_btime); + tprintf("itime=%lu}", dq.dqb_itime); + break; + } + case Q_XGETQUOTA: + case Q_XSETQLIM: + { + struct xfs_dqblk dq; + + if (cmd == Q_XGETQUOTA && syserror(tcp)) + { + tprintf("%#lx", data); + break; + } + if (umove(tcp, data, &dq) < 0) + { + tprintf("{???} %#lx", data); + break; + } + tprintf("{version=%d, ", dq.d_version); + tprintf("flags="); + printflags(xfs_dqblk_flags, + dq.d_flags, "XFS_???_QUOTA"); + tprintf(", fieldmask=%#x, ", dq.d_fieldmask); + tprintf("id=%u, ", dq.d_id); + tprintf("blk_hardlimit=%" PRIu64 ", ", dq.d_blk_hardlimit); + tprintf("blk_softlimit=%" PRIu64 ", ", dq.d_blk_softlimit); + tprintf("ino_hardlimit=%" PRIu64 ", ", dq.d_ino_hardlimit); + tprintf("ino_softlimit=%" PRIu64 ", ", dq.d_ino_softlimit); + tprintf("bcount=%" PRIu64 ", ", dq.d_bcount); + tprintf("icount=%" PRIu64 ", ", dq.d_icount); + if (!abbrev(tcp)) + { + tprintf("itimer=%d, ", dq.d_itimer); + tprintf("btimer=%d, ", dq.d_btimer); + tprintf("iwarns=%u, ", dq.d_iwarns); + tprintf("bwarns=%u, ", dq.d_bwarns); + tprintf("rtbcount=%" PRIu64 ", ", dq.d_rtbcount); + tprintf("rtbtimer=%d, ", dq.d_rtbtimer); + tprintf("rtbwarns=%u}", dq.d_rtbwarns); + } else + tprintf("...}"); + break; + } + case Q_GETFMT: + { + u_int32_t fmt; + + if (syserror(tcp)) + { + tprintf("%#lx", data); + break; + } + if (umove(tcp, data, &fmt) < 0) + { + tprintf("{???} %#lx", data); + break; + } + tprintf("{"); + printxval(quota_formats, fmt, "QFMT_VFS_???"); + tprintf("}"); + break; + } + case Q_GETINFO: + case Q_SETINFO: + { + struct if_dqinfo dq; + + if (cmd == Q_GETINFO && syserror(tcp)) + { + tprintf("%#lx", data); + break; + } + if (umove(tcp, data, &dq) < 0) + { + tprintf("{???} %#lx", data); + break; + } + tprintf("{bgrace=%" PRIu64 ", ", dq.dqi_bgrace); + tprintf("igrace=%" PRIu64 ", ", dq.dqi_igrace); + tprintf("flags=%#x, ", dq.dqi_flags); + tprintf("valid="); + printflags(if_dqinfo_valid, dq.dqi_valid, "IIF_???"); + tprintf("}"); + break; + } + case Q_V2_GETINFO: + case Q_V2_SETINFO: + { + struct v2_dqinfo dq; + + if (cmd == Q_V2_GETINFO && syserror(tcp)) + { + tprintf("%#lx", data); + break; + } + if (umove(tcp, data, &dq) < 0) + { + tprintf("{???} %#lx", data); + break; + } + tprintf("{bgrace=%u, ", dq.dqi_bgrace); + tprintf("igrace=%u, ", dq.dqi_igrace); + tprintf("flags=%#x, ", dq.dqi_flags); + tprintf("blocks=%u, ", dq.dqi_blocks); + tprintf("free_blk=%u, ", dq.dqi_free_blk); + tprintf("free_entry=%u}", dq.dqi_free_entry); + break; + } + case Q_V1_GETSTATS: + { + struct v1_dqstats dq; + + if (syserror(tcp)) + { + tprintf("%#lx", data); + break; + } + if (umove(tcp, data, &dq) < 0) + { + tprintf("{???} %#lx", data); + break; + } + tprintf("{lookups=%u, ", dq.lookups); + tprintf("drops=%u, ", dq.drops); + tprintf("reads=%u, ", dq.reads); + tprintf("writes=%u, ", dq.writes); + tprintf("cache_hits=%u, ", dq.cache_hits); + tprintf("allocated_dquots=%u, ", dq.allocated_dquots); + tprintf("free_dquots=%u, ", dq.free_dquots); + tprintf("syncs=%u}", dq.syncs); + break; + } + case Q_V2_GETSTATS: + { + struct v2_dqstats dq; + + if (syserror(tcp)) + { + tprintf("%#lx", data); + break; + } + if (umove(tcp, data, &dq) < 0) + { + tprintf("{???} %#lx", data); + break; + } + tprintf("{lookups=%u, ", dq.lookups); + tprintf("drops=%u, ", dq.drops); + tprintf("reads=%u, ", dq.reads); + tprintf("writes=%u, ", dq.writes); + tprintf("cache_hits=%u, ", dq.cache_hits); + tprintf("allocated_dquots=%u, ", dq.allocated_dquots); + tprintf("free_dquots=%u, ", dq.free_dquots); + tprintf("syncs=%u, ", dq.syncs); + tprintf("version=%u}", dq.version); + break; + } + case Q_XGETQSTAT: + { + struct xfs_dqstats dq; + + if (syserror(tcp)) + { + tprintf("%#lx", data); + break; + } + if (umove(tcp, data, &dq) < 0) + { + tprintf("{???} %#lx", data); + break; + } + tprintf("{version=%d, ", dq.qs_version); + if (abbrev(tcp)) + { + tprintf("...}"); + break; + } + tprintf("flags="); + printflags(xfs_quota_flags, + dq.qs_flags, "XFS_QUOTA_???"); + tprintf(", incoredqs=%u, ", dq.qs_incoredqs); + tprintf("u_ino=%" PRIu64 ", ", dq.qs_uquota.qfs_ino); + tprintf("u_nblks=%" PRIu64 ", ", dq.qs_uquota.qfs_nblks); + tprintf("u_nextents=%u, ", dq.qs_uquota.qfs_nextents); + tprintf("g_ino=%" PRIu64 ", ", dq.qs_gquota.qfs_ino); + tprintf("g_nblks=%" PRIu64 ", ", dq.qs_gquota.qfs_nblks); + tprintf("g_nextents=%u, ", dq.qs_gquota.qfs_nextents); + tprintf("btimelimit=%d, ", dq.qs_btimelimit); + tprintf("itimelimit=%d, ", dq.qs_itimelimit); + tprintf("rtbtimelimit=%d, ", dq.qs_rtbtimelimit); + tprintf("bwarnlimit=%u, ", dq.qs_bwarnlimit); + tprintf("iwarnlimit=%u}", dq.qs_iwarnlimit); + break; + } + case Q_XQUOTAON: + { + u_int32_t flag; + + if (umove(tcp, data, &flag) < 0) + { + tprintf("{???} %#lx", data); + break; + } + tprintf("{"); + printflags(xfs_quota_flags, flag, "XFS_QUOTA_???"); + tprintf("}"); + break; + } + default: + tprintf("%#lx", data); + break; + } +} + +int +sys_quotactl(struct tcb *tcp) +{ + /* + * The Linux kernel only looks at the low 32 bits of command and id + * arguments, 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. + */ + u_int32_t qcmd = tcp->u_arg[0]; + u_int32_t cmd = QCMD_CMD(qcmd); + u_int32_t type = QCMD_TYPE(qcmd); + u_int32_t id = tcp->u_arg[2]; + + if (!verbose(tcp)) + return printargs(tcp); + + if (entering(tcp)) + { + printxval(quotacmds, cmd, "Q_???"); + tprintf("|"); + printxval(quotatypes, type, "???QUOTA"); + tprintf(", "); + printstr(tcp, tcp->u_arg[1], -1); + tprintf(", "); + switch (cmd) + { + case Q_V1_QUOTAON: + case Q_QUOTAON: + printxval(quota_formats, id, "QFMT_VFS_???"); + break; + case Q_V1_GETQUOTA: + case Q_V2_GETQUOTA: + case Q_GETQUOTA: + case Q_V1_SETQUOTA: + case Q_V2_SETQUOTA: + case Q_V1_SETUSE: + case Q_V2_SETUSE: + case Q_SETQLIM: + case Q_SETQUOTA: + case Q_XGETQUOTA: + case Q_XSETQLIM: + tprintf("%u", id); + break; + default: + tprintf("%#lx", tcp->u_arg[2]); + break; + } + tprintf(", "); + } else + { + if (!tcp->u_arg[3]) + tprintf("NULL"); + else + decode_cmd_data(tcp, cmd, tcp->u_arg[3]); + } + return 0; +} + +#endif /* Linux */ + +#if defined(SUNOS4) || defined(FREEBSD) + +#ifdef SUNOS4 +#include <ufs/quota.h> +#endif + +#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(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/strace-4.5.20/resource.c b/strace-4.5.20/resource.c new file mode 100644 index 0000000..8274f3e --- /dev/null +++ b/strace-4.5.20/resource.c
@@ -0,0 +1,446 @@ +/* + * 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$ + */ + +#include "defs.h" + +#include <sys/resource.h> +#ifdef LINUX +#include <sys/times.h> +#include <linux/kernel.h> +#endif /* LINUX */ +#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_AS + { RLIMIT_AS, "RLIMIT_AS" }, +#endif +#ifdef RLIMIT_CORE + { RLIMIT_CORE, "RLIMIT_CORE" }, +#endif +#ifdef RLIMIT_CPU + { RLIMIT_CPU, "RLIMIT_CPU" }, +#endif +#ifdef RLIMIT_DATA + { RLIMIT_DATA, "RLIMIT_DATA" }, +#endif +#ifdef RLIMIT_FSIZE + { RLIMIT_FSIZE, "RLIMIT_FSIZE" }, +#endif +#ifdef RLIMIT_LOCKS + { RLIMIT_LOCKS, "RLIMIT_LOCKS" }, +#endif +#ifdef RLIMIT_MEMLOCK + { RLIMIT_MEMLOCK, "RLIMIT_MEMLOCK" }, +#endif +#ifdef RLIMIT_MSGQUEUE + { RLIMIT_MSGQUEUE, "RLIMIT_MSGQUEUE" }, +#endif +#ifdef RLIMIT_NICE + { RLIMIT_NICE, "RLIMIT_NICE" }, +#endif +#ifdef RLIMIT_NOFILE + { RLIMIT_NOFILE, "RLIMIT_NOFILE" }, +#endif +#ifdef RLIMIT_NPROC + { RLIMIT_NPROC, "RLIMIT_NPROC" }, +#endif +#ifdef RLIMIT_RSS + { RLIMIT_RSS, "RLIMIT_RSS" }, +#endif +#ifdef RLIMIT_RTPRIO + { RLIMIT_RTPRIO, "RLIMIT_RTPRIO" }, +#endif +#ifdef RLIMIT_SIGPENDING + { RLIMIT_SIGPENDING, "RLIMIT_SIGPENDING" }, +#endif +#ifdef RLIMIT_STACK + { RLIMIT_STACK, "RLIMIT_STACK" }, +#endif +#ifdef RLIMIT_VMEM + { RLIMIT_VMEM, "RLIMIT_VMEM" }, +#endif + { 0, NULL }, +}; + +#if !HAVE_LONG_LONG_RLIM_T +static char * +sprintrlim(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(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(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 */ + +#if _LFS64_LARGEFILE || HAVE_LONG_LONG_RLIM_T +static char * +sprintrlim64(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(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(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 */ + +#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(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(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(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(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(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(struct tcb *tcp) +{ + if (entering(tcp)) { + printxval(priorities, tcp->u_arg[0], "PRIO_???"); + tprintf(", %lu", tcp->u_arg[1]); + } + return 0; +} + +int +sys_setpriority(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(struct tcb *tcp) +{ + if (entering(tcp)) + tprintf("%ld", tcp->u_arg[0]); + return 0; +} + +#ifndef SUNOS4 + +int +sys_times(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 */
diff --git a/strace-4.5.20/scsi.c b/strace-4.5.20/scsi.c new file mode 100644 index 0000000..cc077a9 --- /dev/null +++ b/strace-4.5.20/scsi.c
@@ -0,0 +1,114 @@ +#include "defs.h" + +#ifdef LINUX +#include <sys/ioctl.h> +#include <scsi/sg.h> + +static const struct xlat sg_io_dxfer_direction[] = { + {SG_DXFER_NONE, "SG_DXFER_NONE"}, + {SG_DXFER_TO_DEV, "SG_DXFER_TO_DEV"}, + {SG_DXFER_FROM_DEV, "SG_DXFER_FROM_DEV"}, + {SG_DXFER_TO_FROM_DEV, "SG_DXFER_TO_FROM_DEV"}, + {0, NULL} +}; + +static void +print_sg_io_buffer(struct tcb *tcp, unsigned char *addr, int len) +{ + unsigned char *buf = NULL; + int allocated, i; + + if (len == 0) + return; + allocated = (len > max_strlen) ? max_strlen : len; + if (len < 0 || + (buf = malloc(allocated)) == NULL || + umoven(tcp, (unsigned long) addr, allocated, (char *) buf) < 0) { + tprintf("%p", addr); + free(buf); + return; + } + tprintf("%02x", buf[0]); + for (i = 1; i < allocated; ++i) + tprintf(", %02x", buf[i]); + free(buf); + if (allocated != len) + tprintf(", ..."); +} + +static void +print_sg_io_req(struct tcb *tcp, struct sg_io_hdr *sg_io) +{ + tprintf("{'%c', ", sg_io->interface_id); + printxval(sg_io_dxfer_direction, sg_io->dxfer_direction, + "SG_DXFER_???"); + tprintf(", cmd[%u]=[", sg_io->cmd_len); + print_sg_io_buffer(tcp, sg_io->cmdp, sg_io->cmd_len); + tprintf("], mx_sb_len=%d, ", sg_io->mx_sb_len); + tprintf("iovec_count=%d, ", sg_io->iovec_count); + tprintf("dxfer_len=%u, ", sg_io->dxfer_len); + tprintf("timeout=%u, ", sg_io->timeout); + tprintf("flags=%#x", sg_io->flags); + + if (sg_io->dxfer_direction == SG_DXFER_TO_DEV || + sg_io->dxfer_direction == SG_DXFER_TO_FROM_DEV) { + tprintf(", data[%u]=[", sg_io->dxfer_len); + printstr(tcp, (unsigned long) sg_io->dxferp, + sg_io->dxfer_len); + tprintf("]"); + } +} + +static void +print_sg_io_res(struct tcb *tcp, struct sg_io_hdr *sg_io) +{ + if (sg_io->dxfer_direction == SG_DXFER_FROM_DEV || + sg_io->dxfer_direction == SG_DXFER_TO_FROM_DEV) { + tprintf(", data[%u]=[", sg_io->dxfer_len); + printstr(tcp, (unsigned long) sg_io->dxferp, + sg_io->dxfer_len); + tprintf("]"); + } + tprintf(", status=%02x, ", sg_io->status); + tprintf("masked_status=%02x, ", sg_io->masked_status); + tprintf("sb[%u]=[", sg_io->sb_len_wr); + print_sg_io_buffer(tcp, sg_io->sbp, sg_io->sb_len_wr); + tprintf("], host_status=%#x, ", sg_io->host_status); + tprintf("driver_status=%#x, ", sg_io->driver_status); + tprintf("resid=%d, ", sg_io->resid); + tprintf("duration=%d, ", sg_io->duration); + tprintf("info=%#x}", sg_io->info); +} + +int +scsi_ioctl(struct tcb *tcp, long code, long arg) +{ + switch (code) { + case SG_IO: + if (entering(tcp)) { + struct sg_io_hdr sg_io; + + if (umove(tcp, arg, &sg_io) < 0) + tprintf(", %#lx", arg); + else { + tprintf(", "); + print_sg_io_req(tcp, &sg_io); + } + } + if (exiting(tcp)) { + struct sg_io_hdr sg_io; + + if (!syserror(tcp) && umove(tcp, arg, &sg_io) >= 0) + print_sg_io_res(tcp, &sg_io); + else + tprintf("}"); + } + break; + default: + if (entering(tcp)) + tprintf(", %#lx", arg); + break; + } + return 1; +} +#endif /* LINUX */
diff --git a/strace-4.5.20/signal.c b/strace-4.5.20/signal.c new file mode 100644 index 0000000..bf97e90 --- /dev/null +++ b/strace-4.5.20/signal.c
@@ -0,0 +1,2127 @@ +/* + * 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$ + */ + +#include "defs.h" + +#include <stdint.h> +#include <signal.h> +#include <sys/user.h> +#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 defined (LINUX) && defined (SPARC64) +# undef PTRACE_GETREGS +# define PTRACE_GETREGS PTRACE_GETREGS64 +# undef PTRACE_SETREGS +# define PTRACE_SETREGS PTRACE_SETREGS64 +#endif /* LINUX && SPARC64 */ + +#if defined (SPARC) || defined (SPARC64) || defined (MIPS) +typedef struct { + struct pt_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 */ +#if defined I386 && !defined HAVE_STRUCT_SIGCONTEXT_STRUCT +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 */ +#if defined M68K && !defined HAVE_STRUCT_SIGCONTEXT +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_NODEFER + { SA_NODEFER, "SA_NODEFER" }, +#endif +#if defined SA_NOMASK && SA_NODEFER != SA_NOMASK + { SA_NOMASK, "SA_NOMASK" }, +#endif +#ifdef SA_RESETHAND + { SA_RESETHAND, "SA_RESETHAND" }, +#endif +#if defined SA_ONESHOT && SA_ONESHOT != SA_RESETHAND + { 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 +#ifdef SA_NOPTRACE + { SA_NOPTRACE, "SA_NOPTRACE" }, +#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 const char * +sprintsigmask(const char *str, sigset_t *mask, int rt) +/* set might include realtime sigs */ +{ + int i, nsigs; + int maxsigs; + char *format, *s; + static char outstr[8 * sizeof(sigset_t) * 8]; + + strcpy(outstr, str); + 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("%s", signame(nr)); +} + +void +print_sigset(struct tcb *tcp, long addr, int rt) +{ + sigset_t ss; + + if (!addr) + tprintf("NULL"); + else if (copy_sigset(tcp, addr, &ss) < 0) + tprintf("%#lx", addr); + else + printsigmask(&ss, rt); +} + +#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 +/* 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, 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 + 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; +} + +#if defined(SUNOS4) || defined(FREEBSD) +int +sys_sigblock(tcp) +struct tcb *tcp; +{ + return sys_sigsetmask(tcp); +} +#endif /* SUNOS4 || FREEBSD */ + +#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 { + /* Architectures using function pointers, like + * hppa, may need to manipulate the function pointer + * to compute the result of a comparison. However, + * the SA_HANDLER function pointer exists only in + * the address space of the traced process, and can't + * be manipulated by strace. In order to prevent the + * compiler from generating code to manipulate + * SA_HANDLER we cast the function pointers to long. */ + if ((long)sa.SA_HANDLER == (long)SIG_ERR) + tprintf("{SIG_ERR, "); + else if ((long)sa.SA_HANDLER == (long)SIG_DFL) + tprintf("{SIG_DFL, "); + else if ((long)sa.SA_HANDLER == (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, "); + } + else { +#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 (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", tcp->u_arg[1]); + } + return 0; + } + else if (!syserror(tcp)) { + switch (tcp->u_rval) { + case (long) SIG_ERR: + tcp->auxstr = "SIG_ERR"; break; + case (long) SIG_DFL: + tcp->auxstr = "SIG_DFL"; break; + case (long) SIG_IGN: + tcp->auxstr = "SIG_IGN"; break; + default: + tcp->auxstr = NULL; + } + return RVAL_HEX | RVAL_STR; + } + return 0; +} + +#ifdef SVR4 +int +sys_sighold(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) { + printsignal(tcp->u_arg[0]); + } + return 0; +} +#endif /* SVR4 */ + +#endif /* HAVE_SIGACTION */ + +#ifdef LINUX + +int +sys_sigreturn(struct tcb *tcp) +{ +#if defined(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,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; +#elif defined(I386) + long esp; + struct sigcontext_struct sc; + + if (entering(tcp)) { + tcp->u_arg[0] = 0; + if (upeek(tcp, 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; +#elif defined(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, 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; +#elif defined(POWERPC) + long esp; + struct sigcontext_struct sc; + + if (entering(tcp)) { + tcp->u_arg[0] = 0; + if (upeek(tcp, sizeof(unsigned long)*PT_R1, &esp) < 0) + return 0; + /* Skip dummy stack frame. */ +#ifdef __powerpc64__ + esp += 128; +#else + esp += 64; +#endif + 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; +#elif defined(M68K) + long usp; + struct sigcontext sc; + + if (entering(tcp)) { + tcp->u_arg[0] = 0; + if (upeek(tcp, 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; +#elif defined(ALPHA) + long fp; + struct sigcontext_struct sc; + + if (entering(tcp)) { + tcp->u_arg[0] = 0; + if (upeek(tcp, 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; +#elif defined (SPARC) || defined (SPARC64) + long i1; + struct pt_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.u_regs[U_REG_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; +#elif defined (LINUX_MIPSN32) || defined (LINUX_MIPSN64) + /* This decodes rt_sigreturn. The 64-bit ABIs do not have + sigreturn. */ + long sp; + struct ucontext uc; + + if(entering(tcp)) { + tcp->u_arg[0] = 0; + if (upeek(tcp, REG_SP, &sp) < 0) + return 0; + /* There are six words followed by a 128-byte siginfo. */ + sp = sp + 6 * 4 + 128; + if (umove(tcp, sp, &uc) < 0) + return 0; + tcp->u_arg[0] = 1; + tcp->u_arg[1] = *(long *) &uc.uc_sigmask; + } 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(MIPS) + long sp; + struct pt_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; + sp = regs.regs[29]; + if (umove(tcp, sp, &si) < 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; +#elif defined(CRISV10) || defined(CRISV32) + struct sigcontext sc; + + if (entering(tcp)) { + long regs[PT_MAX+1]; + + tcp->u_arg[0] = 0; + + if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (long)regs) < 0) { + perror("sigreturn: PTRACE_GETREGS"); + return 0; + } + if (umove(tcp, regs[PT_USP], &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(TILE) + struct ucontext uc; + long sp; + + /* offset of ucontext in the kernel's sigframe structure */ +# define SIGFRAME_UC_OFFSET C_ABI_SAVE_AREA_SIZE + sizeof(struct siginfo) + + if (entering(tcp)) { + tcp->u_arg[0] = 0; + if (upeek(tcp, PTREGS_OFFSET_SP, &sp) < 0) + return 0; + if (umove(tcp, sp + SIGFRAME_UC_OFFSET, &uc) < 0) + return 0; + tcp->u_arg[0] = 1; + memcpy(tcp->u_arg + 1, &uc.uc_sigmask, sizeof(uc.uc_sigmask)); + } + 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 +#warning No sys_sigreturn() for this architecture +#warning (no problem, just a reminder :-) + return 0; +#endif +} + +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(struct tcb *tcp) +{ + if (entering(tcp)) { + sigset_t sigm; + long_to_sigset(tcp->u_arg[2], &sigm); + printsigmask(&sigm, 0); + } + return 0; +} + +#endif /* LINUX */ + +#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 */ + if (entering(tcp)) { +#ifdef SVR4 + if (tcp->u_arg[0] == 0) + tprintf("0"); + else +#endif /* SVR4 */ + printxval(sigprocmaskcmds, tcp->u_arg[0], "SIG_???"); + tprintf(", "); + print_sigset(tcp, tcp->u_arg[1], 0); + tprintf(", "); + } + else { + if (!tcp->u_arg[2]) + tprintf("NULL"); + else if (syserror(tcp)) + tprintf("%#lx", tcp->u_arg[2]); + else + print_sigset(tcp, tcp->u_arg[2], 0); + } +#endif /* !ALPHA */ + return 0; +} + +#endif /* HAVE_SIGACTION */ + +int +sys_kill(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) { + /* + * Sign-extend a 32-bit value when that's what it is. + */ + long pid = tcp->u_arg[0]; + if (personality_wordsize[current_personality] < sizeof pid) + pid = (long) (int) pid; + tprintf("%ld, %s", pid, signame(tcp->u_arg[1])); + } + return 0; +} + +#if defined(FREEBSD) || defined(SUNOS4) +int +sys_killpg(tcp) +struct tcb *tcp; +{ + return sys_kill(tcp); +} +#endif /* FREEBSD || SUNOS4 */ + +#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; +} + +#ifdef SVR4 +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; +} +#endif /* SVR4 */ + +#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 +{ + __sighandler_t __sa_handler; + unsigned long sa_flags; + void (*sa_restorer) (void); + /* Kernel treats sa_mask as an array of longs. */ + unsigned long sa_mask[NSIG / sizeof(long) ? NSIG / sizeof(long) : 1]; +}; +/* Same for i386-on-x86_64 and similar cases */ +struct new_sigaction32 +{ + uint32_t __sa_handler; + uint32_t sa_flags; + uint32_t sa_restorer; + uint32_t sa_mask[2 * (NSIG / sizeof(long) ? NSIG / sizeof(long) : 1)]; +}; + + +int +sys_rt_sigaction(struct tcb *tcp) +{ + struct new_sigaction sa; + sigset_t sigset; + long addr; + int r; + + 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"); + goto after_sa; + } + if (!verbose(tcp)) { + tprintf("%#lx", addr); + goto after_sa; + } +#if SUPPORTED_PERSONALITIES > 1 + if (personality_wordsize[current_personality] != sizeof(sa.sa_flags) + && personality_wordsize[current_personality] == 4 + ) { + struct new_sigaction32 sa32; + r = umove(tcp, addr, &sa32); + if (r >= 0) { + memset(&sa, 0, sizeof(sa)); + sa.__sa_handler = (void*)(unsigned long)sa32.__sa_handler; + sa.sa_flags = sa32.sa_flags; + sa.sa_restorer = (void*)(unsigned long)sa32.sa_restorer; + /* Kernel treats sa_mask as an array of longs. + * For 32-bit process, "long" is uint32_t, thus, for example, + * 32th bit in sa_mask will end up as bit 0 in sa_mask[1]. + * But for (64-bit) kernel, 32th bit in sa_mask is + * 32th bit in 0th (64-bit) long! + * For little-endian, it's the same. + * For big-endian, we swap 32-bit words. + */ + sa.sa_mask[0] = sa32.sa_mask[0] + ((long)(sa32.sa_mask[1]) << 32); + } + } else +#endif + { + r = umove(tcp, addr, &sa); + } + if (r < 0) { + tprintf("{...}"); + goto after_sa; + } + /* Architectures using function pointers, like + * hppa, may need to manipulate the function pointer + * to compute the result of a comparison. However, + * the SA_HANDLER function pointer exists only in + * the address space of the traced process, and can't + * be manipulated by strace. In order to prevent the + * compiler from generating code to manipulate + * SA_HANDLER we cast the function pointers to long. */ + if ((long)sa.__sa_handler == (long)SIG_ERR) + tprintf("{SIG_ERR, "); + else if ((long)sa.__sa_handler == (long)SIG_DFL) + tprintf("{SIG_DFL, "); + else if ((long)sa.__sa_handler == (long)SIG_IGN) + tprintf("{SIG_IGN, "); + else + tprintf("{%#lx, ", (long) sa.__sa_handler); + /* Questionable code below. + * Kernel won't handle sys_rt_sigaction + * with wrong sigset size (just returns EINVAL) + * therefore tcp->u_arg[3(4)] _must_ be NSIG / 8 here, + * and we always use smaller memcpy. */ + 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("}"); + + after_sa: + 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", tcp->u_arg[3]); +#endif + return 0; +} + +int +sys_rt_sigpending(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(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(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(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(", "); + /* This is the only "return" parameter, */ + if (tcp->u_arg[1] != 0) + return 0; + /* ... if it's NULL, can decode all on entry */ + tprintf("NULL, "); + } + else if (tcp->u_arg[1] != 0) { + /* syscall exit, and u_arg[1] wasn't NULL */ + if (syserror(tcp)) + tprintf("%#lx, ", tcp->u_arg[1]); + else { + siginfo_t si; + if (umove(tcp, tcp->u_arg[1], &si) < 0) + tprintf("%#lx, ", tcp->u_arg[1]); + else { + printsiginfo(&si, verbose(tcp)); + tprintf(", "); + } + } + } + else { + /* syscall exit, and u_arg[1] was NULL */ + return 0; + } + print_timespec(tcp, tcp->u_arg[2]); + tprintf(", %d", (int) tcp->u_arg[3]); + return 0; +}; + +int +sys_restart_syscall(struct tcb *tcp) +{ + if (entering(tcp)) + tprintf("<... resuming interrupted call ...>"); + return 0; +} + +static int +do_signalfd(struct tcb *tcp, int flags_arg) +{ + if (entering(tcp)) { + tprintf("%ld, ", tcp->u_arg[0]); + print_sigset(tcp, tcp->u_arg[1], 1); + tprintf(", %lu", tcp->u_arg[2]); + if (flags_arg >= 0) { + tprintf(", "); + printflags(open_mode_flags, tcp->u_arg[flags_arg], "O_???"); + } + } + return 0; +} + +int +sys_signalfd(struct tcb *tcp) +{ + return do_signalfd(tcp, -1); +} + +int +sys_signalfd4(struct tcb *tcp) +{ + return do_signalfd(tcp, 3); +} +#endif /* LINUX */
diff --git a/strace-4.5.20/signalent.sh b/strace-4.5.20/signalent.sh new file mode 100755 index 0000000..9a346dd --- /dev/null +++ b/strace-4.5.20/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$ + +cat $* | + sed -n -e 's/\/\*.*\*\// /' -e 's/^#[ ]*define[ ][ ]*SIG\([^_ ]*\)[ ][ ]*\([0-9][0-9]*\)[ ]*$/\1 \2/p' | + sort -k2n | uniq | + 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/strace-4.5.20/sock.c b/strace-4.5.20/sock.c new file mode 100644 index 0000000..e7c72b5 --- /dev/null +++ b/strace-4.5.20/sock.c
@@ -0,0 +1,296 @@ +/* + * 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$ + */ + +#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> + +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(struct tcb *tcp, long code, long arg) +{ + struct ifreq ifr; + struct ifconf ifc; + const char *str = NULL; + unsigned char *bytes; + + if (entering(tcp)) { + if (code == SIOCGIFCONF) { + if (umove(tcp, tcp->u_arg[2], &ifc) >= 0 + && 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 SIOCSIFNAME: + case SIOCGIFINDEX: + case SIOCGIFADDR: + case SIOCSIFADDR: + case SIOCGIFDSTADDR: + case SIOCSIFDSTADDR: + case SIOCGIFBRDADDR: + case SIOCSIFBRDADDR: + case SIOCGIFNETMASK: + case SIOCSIFNETMASK: + case SIOCGIFFLAGS: + case SIOCSIFFLAGS: + case SIOCGIFMETRIC: + case SIOCSIFMETRIC: + case SIOCGIFMTU: + case SIOCSIFMTU: + case SIOCGIFSLAVE: + case SIOCSIFSLAVE: + case SIOCGIFHWADDR: + case SIOCSIFHWADDR: + case SIOCGIFTXQLEN: + case SIOCSIFTXQLEN: + case SIOCGIFMAP: + case SIOCSIFMAP: + if (umove(tcp, tcp->u_arg[2], &ifr) < 0) + tprintf(", %#lx", tcp->u_arg[2]); + else if (syserror(tcp)) { + if (code == SIOCGIFNAME || code == SIOCSIFNAME) + tprintf(", {ifr_index=%d, ifr_name=???}", ifr.ifr_ifindex); + else + tprintf(", {ifr_name=\"%s\", ???}", ifr.ifr_name); + } else if (code == SIOCGIFNAME || code == SIOCSIFNAME) + 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: + case SIOCSIFADDR: + str = "ifr_addr"; + case SIOCGIFDSTADDR: + case SIOCSIFDSTADDR: + if (!str) + str = "ifr_dstaddr"; + case SIOCGIFBRDADDR: + case SIOCSIFBRDADDR: + if (!str) + str = "ifr_broadaddr"; + case SIOCGIFNETMASK: + case SIOCSIFNETMASK: + if (!str) + 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: + case SIOCSIFHWADDR: + /* 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: + case SIOCSIFFLAGS: + tprintf("ifr_flags="); + printflags(iffflags, ifr.ifr_flags, "IFF_???"); + break; + case SIOCGIFMETRIC: + case SIOCSIFMETRIC: + tprintf("ifr_metric=%d", ifr.ifr_metric); + break; + case SIOCGIFMTU: + case SIOCSIFMTU: + tprintf("ifr_mtu=%d", ifr.ifr_mtu); + break; + case SIOCGIFSLAVE: + case SIOCSIFSLAVE: + tprintf("ifr_slave=\"%s\"", ifr.ifr_slave); + break; + case SIOCGIFTXQLEN: + case SIOCSIFTXQLEN: + tprintf("ifr_qlen=%d", ifr.ifr_qlen); + break; + case SIOCGIFMAP: + case SIOCSIFMAP: + tprintf("ifr_map={mem_start=%#lx, " + "mem_end=%#lx, base_addr=%#x, " + "irq=%u, dma=%u, port=%u}", + ifr.ifr_map.mem_start, + ifr.ifr_map.mem_end, + (unsigned) ifr.ifr_map.base_addr, + (unsigned) ifr.ifr_map.irq, + (unsigned) ifr.ifr_map.dma, + (unsigned) ifr.ifr_map.port); + break; + } + tprintf("}"); + } + return 1; + case SIOCGIFCONF: + if (umove(tcp, tcp->u_arg[2], &ifc) < 0) { + tprintf("???}"); + return 1; + } + 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]; + + if (umoven(tcp, (unsigned long) ifc.ifc_buf, + sizeof(ifra), (char *) ifra) < 0) { + tprintf("%lx}", (unsigned long) ifc.ifc_buf); + return 1; + } + 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-4.5.20/strace-graph b/strace-4.5.20/strace-graph new file mode 100755 index 0000000..6a04ac2 --- /dev/null +++ b/strace-4.5.20/strace-graph
@@ -0,0 +1,338 @@ +#!/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$ + +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' || $call eq 'clone' || $call eq 'vfork') { + 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-4.5.20/strace.1 b/strace-4.5.20/strace.1 new file mode 100644 index 0000000..a98b9f9 --- /dev/null +++ b/strace-4.5.20/strace.1
@@ -0,0 +1,730 @@ +.\" 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$ +.\" +.de CW +.sp +.nf +.ft CW +.. +.de CE +.ft R +.fi +.sp +.. +.TH STRACE 1 "2010-03-30" +.SH NAME +strace \- trace system calls and signals +.SH SYNOPSIS +.B strace +[ +.B \-CdffhiqrtttTvxx +] +[ +.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 +If a system call is being executed and meanwhile another one is being called +from a different thread/process then +.B strace +will try to preserve the order of those events and mark the ongoing call as +being +.IR unfinished . +When the call returns it will be marked as +.IR resumed . +.CW +[pid 28772] select(4, [3], NULL, NULL, NULL <unfinished ...> +[pid 28779] clock_gettime(CLOCK_REALTIME, {1130322148, 939977000}) = 0 +[pid 28772] <... select resumed> ) = 1 (in [3]) +.CE +Interruption of a (restartable) system call by a signal delivery is processed +differently as kernel terminates the system call and also arranges its +immediate reexecution after the signal handler completes. +.CW +read(0, 0x7ffff72cf5cf, 1) = ? ERESTARTSYS (To be restarted) +--- SIGALRM (Alarm clock) @ 0 (0) --- +rt_sigreturn(0xe) = 0 +read(0, ""..., 1) = 0 +.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. If +.B \-c +is used with +.B \-f +or +.B \-F +(below), only aggregate totals for all traced processes are kept. +.TP +.B \-C +Like +.B \-c +but also print regular output while processes are running. +.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. +.IP +On non-Linux platforms the new process is +attached to as soon as its pid is known (through the return value of +.BR fork (2) +in the parent process). This means that such children may run +uncontrolled for a while (especially in the case of a +.BR vfork (2)), +until the parent is scheduled again to complete its +.RB ( v ) fork (2) +call. On Linux the child is traced from its first instruction with no delay. +If the parent process decides to +.BR wait (2) +for a child that is currently +being traced, it is suspended until an appropriate child process either +terminates or incurs a signal that would cause it to terminate (as +determined from the child's current signal disposition). +.IP +On SunOS 4.x the tracing of +.BR vfork s +is accomplished with some dynamic linking trickery. +.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. +This is incompatible with +.BR \-c , +since no per-process counts are kept. +.TP +.B \-F +This option is now obsolete and it has the same functionality as +.BR \-f . +.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, +.BR \-e "\ " open +means literally +.BR \-e "\ " trace = open +which in turn means trace only the +.B open +system call. By contrast, +.BR \-e "\ " trace "=!" 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 +\fB\-e\ trace\fR=\fIset\fR +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, +.BR 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 +\fB\-e\ trace\fR=\fIfile\fR +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 +\fB\-e\ trace\fR=\fIprocess\fR +Trace all system calls which involve process management. This +is useful for watching the fork, wait, and exec steps of a process. +.TP +\fB\-e\ trace\fR=\fInetwork\fR +Trace all the network related system calls. +.TP +\fB\-e\ trace\fR=\fIsignal\fR +Trace all signal related system calls. +.TP +\fB\-e\ trace\fR=\fIipc\fR +Trace all IPC related system calls. +.TP +\fB\-e\ trace\fR=\fIdesc\fR +Trace all file descriptor related system calls. +.TP +\fB\-e\ abbrev\fR=\fIset\fR +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 +\fB\-e\ verbose\fR=\fIset\fR +Dereference structures for the specified set of system calls. The +default is +.BR verbose = all . +.TP +\fB\-e\ raw\fR=\fIset\fR +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 +\fB\-e\ signal\fR=\fIset\fR +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 +\fB\-e\ read\fR=\fIset\fR +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 +.I 3 +and +.I 5 +use +\fB\-e\ read\fR=\fI3\fR,\fI5\fR. +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 +\fB\-e\ write\fR=\fIset\fR +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 +.I 3 +and +.I 5 +use +\fB\-e\ write\fR=\fI3\fR,\fI5\fR. +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 is +.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 +\fB\-E\ \fIvar\fR=\fIval\fR +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 DIAGNOSTICS +When +.I command +exits, +.B strace +exits with the same exit status. +If +.I command +is terminated by a signal, +.B strace +terminates itself with the same signal, so that +.B strace +can be used as a wrapper process transparent to the invoking parent process. +.LP +When using +.BR \-p , +the exit status of +.B strace +is zero unless there was an unexpected error in doing the tracing. +.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 ltrace (1), +.BR time (1), +.BR ptrace (2), +.BR proc (5) +.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 BUGS +The SIGTRAP signal is used internally by the kernel implementation of +system call tracing. When a traced process receives a SIGTRAP signal not +associated with tracing, strace will not report that signal correctly. +This signal is not normally used by programs, but could be via a hard-coded +break instruction or via +.BR kill (2). +.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-4.5.20/strace.c b/strace-4.5.20/strace.c new file mode 100644 index 0000000..40f8907 --- /dev/null +++ b/strace-4.5.20/strace.c
@@ -0,0 +1,2718 @@ +/* + * 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$ + */ + +#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> + +#ifdef LINUX +# include <asm/unistd.h> +# if defined __NR_tgkill +# define my_tgkill(pid, tid, sig) syscall (__NR_tgkill, (pid), (tid), (sig)) +# elif defined __NR_tkill +# define my_tgkill(pid, tid, sig) syscall (__NR_tkill, (tid), (sig)) +# else + /* kill() may choose arbitrarily the target task of the process group + while we later wait on a that specific TID. PID process waits become + TID task specific waits for a process under ptrace(2). */ +# warning "Neither tkill(2) nor tgkill(2) available, risk of strace hangs!" +# define my_tgkill(pid, tid, sig) kill ((tid), (sig)) +# endif +#endif + +#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 +extern char **environ; +extern int optind; +extern char *optarg; + + +int debug = 0, followfork = 0; +int dtime = 0, xflag = 0, qflag = 0; +cflag_t cflag = CFLAG_NONE; +static int iflag = 0, interactive = 0, pflag_seen = 0, rflag = 0, tflag = 0; +/* + * daemonized_tracer supports -D option. + * With this option, strace forks twice. + * Unlike normal case, with -D *grandparent* process exec's, + * becoming a traced process. Child exits (this prevents traced process + * from having children it doesn't expect to have), and grandchild + * attaches to grandparent similarly to strace -p PID. + * This allows for more transparent interaction in cases + * when process and its parent are communicating via signals, + * wait() etc. Without -D, strace process gets lodged in between, + * disrupting parent<->child link. + */ +static bool daemonized_tracer = 0; + +/* Sometimes we want to print only succeeding syscalls. */ +int not_failing_only = 0; + +static int exit_code = 0; +static int strace_child = 0; + +static char *username = NULL; +uid_t run_uid; +gid_t run_gid; + +int acolumn = DEFAULT_ACOLUMN; +int max_strlen = DEFAULT_STRLEN; +static char *outfname = NULL; +FILE *outf; +static int curcol; +struct tcb **tcbtab; +unsigned int nprocs, tcbtabsize; +char *progname; +extern char **environ; + +static int detach(struct tcb *tcp, int sig); +static int trace(void); +static void cleanup(void); +static void interrupt(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 */ +static volatile int interrupted; +#endif /* !HAVE_SIG_ATOMIC_T */ + +#ifdef USE_PROCFS + +static struct tcb *pfd2tcb(int pfd); +static void reaper(int sig); +static void rebuild_pollv(void); +static struct pollfd *pollv; + +#ifndef HAVE_POLLABLE_PROCFS + +static void proc_poll_open(void); +static void proc_poller(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 -D [-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\ +-D -- run tracer process as a detached grandchild, not as parent\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 */ + +/* Glue for systems without a MMU that cannot provide fork() */ +#ifdef HAVE_FORK +# define strace_vforked 0 +#else +# define strace_vforked 1 +# define fork() vfork() +#endif + +static int +set_cloexec_flag(int fd) +{ + int flags, newflags; + + if ((flags = fcntl(fd, F_GETFD, 0)) < 0) + { + fprintf(stderr, "%s: fcntl F_GETFD: %s\n", + progname, strerror(errno)); + return -1; + } + + newflags = flags | FD_CLOEXEC; + if (flags == newflags) + return 0; + + if (fcntl(fd, F_SETFD, newflags) < 0) + { + fprintf(stderr, "%s: fcntl F_SETFD: %s\n", + progname, strerror(errno)); + return -1; + } + + return 0; +} + +/* + * When strace is setuid executable, we have to swap uids + * before and after filesystem and process management operations. + */ +static void +swap_uid(void) +{ +#ifndef SVR4 + int euid = geteuid(), uid = getuid(); + + if (euid != uid && setreuid(euid, uid) < 0) + { + fprintf(stderr, "%s: setreuid: %s\n", + progname, strerror(errno)); + exit(1); + } +#endif +} + +#if _LFS64_LARGEFILE +# define fopen_for_output fopen64 +#else +# define fopen_for_output fopen +#endif + +static FILE * +strace_fopen(const char *path, const char *mode) +{ + FILE *fp; + + swap_uid(); + if ((fp = fopen_for_output(path, mode)) == NULL) + fprintf(stderr, "%s: can't fopen '%s': %s\n", + progname, path, strerror(errno)); + swap_uid(); + if (fp && set_cloexec_flag(fileno(fp)) < 0) + { + fclose(fp); + fp = NULL; + } + return fp; +} + +static int popen_pid = -1; + +#ifndef _PATH_BSHELL +# define _PATH_BSHELL "/bin/sh" +#endif + +/* + * We cannot use standard popen(3) here because we have to distinguish + * popen child process from other processes we trace, and standard popen(3) + * does not export its child's pid. + */ +static FILE * +strace_popen(const char *command) +{ + int fds[2]; + + swap_uid(); + if (pipe(fds) < 0) + { + fprintf(stderr, "%s: pipe: %s\n", + progname, strerror(errno)); + swap_uid(); + return NULL; + } + + if (set_cloexec_flag(fds[1]) < 0) + { + close(fds[0]); + close(fds[1]); + swap_uid(); + return NULL; + } + + if ((popen_pid = fork()) == -1) + { + fprintf(stderr, "%s: fork: %s\n", + progname, strerror(errno)); + close(fds[0]); + close(fds[1]); + swap_uid(); + return NULL; + } + + if (popen_pid) + { + /* parent */ + close(fds[0]); + swap_uid(); + return fdopen(fds[1], "w"); + } else + { + /* child */ + close(fds[1]); + if (fds[0] && (dup2(fds[0], 0) || close(fds[0]))) + { + fprintf(stderr, "%s: dup2: %s\n", + progname, strerror(errno)); + _exit(1); + } + execl(_PATH_BSHELL, "sh", "-c", command, NULL); + fprintf(stderr, "%s: execl: %s: %s\n", + progname, _PATH_BSHELL, strerror(errno)); + _exit(1); + } +} + +static int +newoutf(struct tcb *tcp) +{ + if (outfname && followfork > 1) { + char name[520 + sizeof(int) * 3]; + FILE *fp; + + sprintf(name, "%.512s.%u", outfname, tcp->pid); + if ((fp = strace_fopen(name, "w")) == NULL) + return -1; + tcp->outf = fp; + } + return 0; +} + +static void +startup_attach(void) +{ + int tcbi; + struct tcb *tcp; + + /* + * Block user interruptions as we would leave the traced + * process stopped (process state T) if we would terminate in + * between PTRACE_ATTACH and wait4 () on SIGSTOP. + * We rely on cleanup () from this point on. + */ + if (interactive) + sigprocmask(SIG_BLOCK, &blocked_set, NULL); + + if (daemonized_tracer) { + pid_t pid = fork(); + if (pid < 0) { + _exit(1); + } + if (pid) { /* parent */ + /* + * Wait for child to attach to straced process + * (our parent). Child SIGKILLs us after it attached. + * Parent's wait() is unblocked by our death, + * it proceeds to exec the straced program. + */ + pause(); + _exit(0); /* paranoia */ + } + } + + for (tcbi = 0; tcbi < tcbtabsize; tcbi++) { + tcp = tcbtab[tcbi]; + if (!(tcp->flags & TCB_INUSE) || !(tcp->flags & TCB_ATTACHED)) + continue; +#ifdef LINUX + if (tcp->flags & TCB_CLONE_THREAD) + continue; +#endif + /* Reinitialize the output since it may have changed. */ + tcp->outf = outf; + if (newoutf(tcp) < 0) + exit(1); + +#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 (followfork && !daemonized_tracer) { + char procdir[sizeof("/proc/%d/task") + sizeof(int) * 3]; + 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) + 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[tcbi]->pid) { + tcp = alloctcb(tid); + tcp->flags |= TCB_ATTACHED|TCB_CLONE_THREAD|TCB_CLONE_DETACHED|TCB_FOLLOWFORK; + tcbtab[tcbi]->nchildren++; + tcbtab[tcbi]->nclone_threads++; + tcbtab[tcbi]->nclone_detached++; + tcp->parent = tcbtab[tcbi]; + } + if (interactive) { + sigprocmask(SIG_SETMASK, &empty_set, NULL); + if (interrupted) + return; + sigprocmask(SIG_BLOCK, &blocked_set, NULL); + } + } + closedir(dir); + ntid -= nerr; + if (ntid == 0) { + perror("attach: ptrace(PTRACE_ATTACH, ...)"); + droptcb(tcp); + continue; + } + if (!qflag) { + fprintf(stderr, ntid > 1 +? "Process %u attached with %u threads - interrupt to quit\n" +: "Process %u attached - interrupt to quit\n", + tcbtab[tcbi]->pid, ntid); + } + continue; + } /* if (opendir worked) */ + } /* if (-f) */ +# endif + if (ptrace(PTRACE_ATTACH, tcp->pid, (char *) 1, 0) < 0) { + perror("attach: ptrace(PTRACE_ATTACH, ...)"); + droptcb(tcp); + continue; + } + /* INTERRUPTED is going to be checked at the top of TRACE. */ + + if (daemonized_tracer) { + /* + * It is our grandparent we trace, not a -p PID. + * Don't want to just detach on exit, so... + */ + tcp->flags &= ~TCB_ATTACHED; + /* + * Make parent go away. + * Also makes grandparent's wait() unblock. + */ + kill(getppid(), SIGKILL); + } + +#endif /* !USE_PROCFS */ + if (!qflag) + fprintf(stderr, + "Process %u attached - interrupt to quit\n", + tcp->pid); + } + + if (interactive) + sigprocmask(SIG_SETMASK, &empty_set, NULL); +} + +static void +startup_child (char **argv) +{ + struct stat statbuf; + const char *filename; + char pathname[MAXPATHLEN]; + int pid = 0; + struct tcb *tcp; + + filename = argv[0]; + 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) { + if (!getcwd(pathname, MAXPATHLEN)) + continue; + 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); + } + strace_child = pid = fork(); + if (pid < 0) { + perror("strace: fork"); + cleanup(); + exit(1); + } + if ((pid != 0 && daemonized_tracer) /* parent: to become a traced process */ + || (pid == 0 && !daemonized_tracer) /* child: to become a traced process */ + ) { + pid = getpid(); +#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(pid, SIGSTOP); /* stop HERE */ +#endif /* FREEBSD */ +#else /* !USE_PROCFS */ + if (outf!=stderr) + close(fileno (outf)); + + if (!daemonized_tracer) { + if (ptrace(PTRACE_TRACEME, 0, (char *) 1, 0) < 0) { + perror("strace: ptrace(PTRACE_TRACEME, ...)"); + exit(1); + } + if (debug) + kill(pid, 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) { + if (initgroups(username, run_gid) < 0) { + perror("initgroups"); + exit(1); + } + 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); + + if (!daemonized_tracer) { + /* + * Induce an immediate stop so that the parent + * will resume us with PTRACE_SYSCALL and display + * this execve call normally. + * Unless of course we're on a no-MMU system where + * we vfork()-ed, so we cannot stop the child. + */ + if (!strace_vforked) + kill(getpid(), SIGSTOP); + } else { + struct sigaction sv_sigchld; + sigaction(SIGCHLD, NULL, &sv_sigchld); + /* + * Make sure it is not SIG_IGN, otherwise wait + * will not block. + */ + signal(SIGCHLD, SIG_DFL); + /* + * Wait for grandchild to attach to us. + * It kills child after that, and wait() unblocks. + */ + alarm(3); + wait(NULL); + alarm(0); + sigaction(SIGCHLD, &sv_sigchld, NULL); + } +#endif /* !USE_PROCFS */ + + execv(pathname, argv); + perror("strace: exec"); + _exit(1); + } + + /* We are the tracer. */ + tcp = alloctcb(daemonized_tracer ? getppid() : pid); + if (daemonized_tracer) { + /* We want subsequent startup_attach() to attach to it. */ + tcp->flags |= TCB_ATTACHED; + } +#ifdef USE_PROCFS + if (proc_open(tcp, 0) < 0) { + fprintf(stderr, "trouble opening proc file\n"); + cleanup(); + exit(1); + } +#endif /* USE_PROCFS */ +} + +int +main(int argc, char *argv[]) +{ + struct tcb *tcp; + int c, pid = 0; + int optF = 0; + struct sigaction sa; + + static char buf[BUFSIZ]; + + progname = argv[0] ? argv[0] : "strace"; + + /* Allocate the initial tcbtab. */ + tcbtabsize = argc; /* Surely enough for all -p args. */ + if ((tcbtab = calloc(tcbtabsize, sizeof tcbtab[0])) == NULL) { + fprintf(stderr, "%s: out of memory\n", progname); + exit(1); + } + if ((tcbtab[0] = calloc(tcbtabsize, sizeof tcbtab[0][0])) == NULL) { + fprintf(stderr, "%s: out of memory\n", progname); + exit(1); + } + for (tcp = tcbtab[0]; tcp < &tcbtab[0][tcbtabsize]; ++tcp) + tcbtab[tcp - tcbtab[0]] = &tcbtab[0][tcp - tcbtab[0]]; + + outf = stderr; + interactive = 1; + set_sortby(DEFAULT_SORTBY); + set_personality(DEFAULT_PERSONALITY); + qualify("trace=all"); + qualify("abbrev=all"); + qualify("verbose=all"); + qualify("signal=all"); + while ((c = getopt(argc, argv, + "+cCdfFhiqrtTvVxz" +#ifndef USE_PROCFS + "D" +#endif + "a:e:o:O:p:s:S:u:E:")) != EOF) { + switch (c) { + case 'c': + if (cflag == CFLAG_BOTH) { + fprintf(stderr, "%s: -c and -C are mutually exclusive options\n", + progname); + exit(1); + } + cflag = CFLAG_ONLY_STATS; + break; + case 'C': + if (cflag == CFLAG_ONLY_STATS) { + fprintf(stderr, "%s: -c and -C are mutually exclusive options\n", + progname); + exit(1); + } + cflag = CFLAG_BOTH; + break; + case 'd': + debug++; + break; +#ifndef USE_PROCFS + /* Experimental, not documented in manpage yet. */ + case 'D': + daemonized_tracer = 1; + break; +#endif + case 'F': + optF = 1; + break; + case 'f': + followfork++; + 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; + } + tcp = alloc_tcb(pid, 0); + 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); + + if (!followfork) + followfork = optF; + + if (followfork > 1 && cflag) { + fprintf(stderr, + "%s: (-c or -C) and -ff are mutually exclusive options\n", + progname); + exit(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, username); + exit(1); + } + run_uid = pent->pw_uid; + run_gid = pent->pw_gid; + } + else { + run_uid = getuid(); + run_gid = getgid(); + } + + /* Check if they want to redirect the output. */ + if (outfname) { + /* 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); + } + + if ((outf = strace_popen(outfname + 1)) == NULL) + exit(1); + } + else if (followfork <= 1 && + (outf = strace_fopen(outfname, "w")) == NULL) + exit(1); + } + + if (!outfname || outfname[0] == '|' || outfname[0] == '!') + setvbuf(outf, buf, _IOLBF, BUFSIZ); + if (outfname && optind < argc) { + interactive = 0; + qflag = 1; + } + /* Valid states here: + optind < argc pflag_seen outfname interactive + 1 0 0 1 + 0 1 0 1 + 1 0 1 0 + 0 1 1 1 + */ + + /* STARTUP_CHILD must be called before the signal handlers get + installed below as they are inherited into the spawned process. + Also we do not need to be protected by them as during interruption + in the STARTUP_CHILD mode we kill the spawned process anyway. */ + if (!pflag_seen) + startup_child(&argv[optind]); + + 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 (pflag_seen || daemonized_tracer) + startup_attach(); + + if (trace() < 0) + exit(1); + cleanup(); + fflush(NULL); + if (exit_code > 0xff) { + /* Child was killed by a signal, mimic that. */ + exit_code &= 0xff; + signal(exit_code, SIG_DFL); + raise(exit_code); + /* Paranoia - what if this signal is not fatal? + Exit with 128 + signo then. */ + exit_code += 128; + } + exit(exit_code); +} + +void +expand_tcbtab(void) +{ + /* 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) { + fprintf(stderr, "%s: expand_tcbtab: out of memory\n", + progname); + cleanup(); + exit(1); + } + for (i = tcbtabsize; i < 2 * tcbtabsize; ++i) + newtab[i] = &newtcbs[i - tcbtabsize]; + tcbtabsize *= 2; + tcbtab = newtab; +} + +struct tcb * +alloc_tcb(int pid, int command_options_parsed) +{ + int i; + struct tcb *tcp; + + if (nprocs == tcbtabsize) + expand_tcbtab(); + + 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->curcol = 0; + tcp->stime.tv_sec = 0; + tcp->stime.tv_usec = 0; + tcp->pfd = -1; + nprocs++; + if (command_options_parsed) + newoutf(tcp); + return tcp; + } + } + fprintf(stderr, "%s: bug in alloc_tcb\n", progname); + cleanup(); + exit(1); +} + +#ifdef USE_PROCFS +int +proc_open(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 (set_cloexec_flag(tcp->pfd) < 0) { + 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 (set_cloexec_flag(tcp->pfd_stat) < 0) { + 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 (set_cloexec_flag(tcp->pfd_as) < 0) { + 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 (set_cloexec_flag(tcp->pfd) < 0) { + 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++; +#ifdef LINUX + /* Update `tcp->parent->parent->nchildren' and the other fields + like NCLONE_DETACHED, only for zombie group leader that has + already reported and been short-circuited at the top of this + function. The same condition as at the top of DETACH. */ + if ((tcp->flags & TCB_CLONE_THREAD) && + tcp->parent->nclone_threads == 0 && + (tcp->parent->flags & TCB_EXITING)) + droptcb(tcp->parent); +#endif + 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_restart(PTRACE_SYSCALL, tcp, 0) < 0) + return -1; + + if (!qflag) + fprintf(stderr, "Process %u resumed\n", tcp->pid); + return 0; +} + +static int +resume_from_tcp (struct tcb *tcp) +{ + int error = 0; + int 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 + + return error; +} + +#endif /* !USE_PROCFS */ + +/* detach traced process; continue with sig + Never call DETACH twice on the same process as both unattached and + attached-unstopped processes give the same ESRCH. For unattached process we + would SIGSTOP it and wait for its SIGSTOP notification forever. */ + +static int +detach(tcp, sig) +struct tcb *tcp; +int sig; +{ + int error = 0; +#ifdef LINUX + int status, catch_sigstop; + struct tcb *zombie = NULL; + + /* If the group leader is lingering only because of this other + thread now dying, then detach the leader as well. */ + if ((tcp->flags & TCB_CLONE_THREAD) && + tcp->parent->nclone_threads == 1 && + (tcp->parent->flags & TCB_EXITING)) + zombie = tcp->parent; +#endif + + if (tcp->flags & TCB_BPTSET) + clearbpt(tcp); + +#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 + /* + * On TCB_STARTUP we did PTRACE_ATTACH but still did not get the + * expected SIGSTOP. We must catch exactly one as otherwise the + * detached process would be left stopped (process state T). + */ + catch_sigstop = (tcp->flags & TCB_STARTUP); + 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 (my_tgkill((tcp->flags & TCB_CLONE_THREAD ? tcp->parent->pid + : tcp->pid), + tcp->pid, 0) < 0) { + if (errno != ESRCH) + perror("detach: checking sanity"); + } + else if (!catch_sigstop && my_tgkill((tcp->flags & TCB_CLONE_THREAD + ? tcp->parent->pid : tcp->pid), + tcp->pid, SIGSTOP) < 0) { + if (errno != ESRCH) + perror("detach: stopping child"); + } + else + catch_sigstop = 1; + if (catch_sigstop) { + 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) { + ptrace_restart(PTRACE_DETACH, tcp, sig); + break; + } + error = ptrace_restart(PTRACE_CONT, tcp, + WSTOPSIG(status) == SIGTRAP ? 0 + : WSTOPSIG(status)); + if (error < 0) + 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; + error = ptrace_restart(PTRACE_DETACH, tcp, sig); +#endif /* SUNOS4 */ + +#ifndef USE_PROCFS + error |= resume_from_tcp (tcp); +#endif + + if (!qflag) + fprintf(stderr, "Process %u detached\n", tcp->pid); + + droptcb(tcp); + +#ifdef LINUX + if (zombie != NULL) { + /* TCP no longer exists therefore you must not detach () it. */ + droptcb(zombie); + } +#endif + + return error; +} + +#ifdef USE_PROCFS + +static void reaper(int sig) +{ + int pid; + int status; + + while ((pid = waitpid(-1, &status, WNOHANG)) > 0) { + } +} + +#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 ...>"); + printtrailer(); + } + 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 i; + + if (pipe(proc_poll_pipe) < 0) { + perror("pipe"); + exit(1); + } + for (i = 0; i < 2; i++) { + if (set_cloexec_flag(proc_poll_pipe[i]) < 0) { + 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(1); + 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(1); + } + 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 + if (ioctl(pfd, PIOCWSTOP, &pfs) < 0) +#endif + { + 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; + curcol = tcp->curcol; + + 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 != CFLAG_ONLY_STATS + && (qual_flags[what] & QUAL_SIGNAL)) { + printleader(tcp); + tprintf("--- %s (%s) ---", + signame(what), strsignal(what)); + printtrailer(); +#ifdef PR_INFO + if (tcp->status.PR_INFO.si_signo == what) { + printleader(tcp); + tprintf(" siginfo="); + printsiginfo(&tcp->status.PR_INFO, 1); + printtrailer(); + } +#endif + } + break; + case PR_FAULTED: + if (cflag != CFLAGS_ONLY_STATS + && (qual_flags[what] & QUAL_FAULT)) { + printleader(tcp); + tprintf("=== FAULT %d ===", what); + printtrailer(); + } + 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; + } + /* Remember current print column before continuing. */ + tcp->curcol = curcol; + 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 = NULL; + + if (tcp->flags & TCB_CLONE_THREAD) + leader = tcp->parent; + else if (tcp->nclone_detached > 0) + leader = tcp; + + if (sig < 0) { + if (leader != NULL && leader != tcp + && !(leader->flags & TCB_GROUP_EXITING) + && !(tcp->flags & TCB_STARTUP) + ) { + fprintf(stderr, + "PANIC: handle_group_exit: %d leader %d\n", + tcp->pid, leader ? leader->pid : -1); + } + /* TCP no longer exists therefore you must not detach() it. */ +#ifndef USE_PROCFS + resume_from_tcp(tcp); +#endif + droptcb(tcp); /* Already died. */ + } + else { + /* Mark that we are taking the process down. */ + tcp->flags |= TCB_EXITING | TCB_GROUP_EXITING; + if (tcp->flags & TCB_ATTACHED) { + detach(tcp, sig); + if (leader != NULL && leader != tcp) + leader->flags |= TCB_GROUP_EXITING; + } else { + if (ptrace_restart(PTRACE_CONT, tcp, sig) < 0) { + cleanup(); + return -1; + } + if (leader != NULL) { + leader->flags |= TCB_GROUP_EXITING; + if (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 (interrupted) + return 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 (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. + */ + return 0; + default: + errno = wait_errno; + perror("strace: wait"); + return -1; + } + } + if (pid == popen_pid) { + if (WIFEXITED(status) || WIFSIGNALED(status)) + popen_pid = -1; + continue; + } + 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) { + /* This is needed to go with the CLONE_PTRACE + changes in process.c/util.c: we might see + the child's initial trap before we see the + parent return from the clone syscall. + Leave the child suspended until the parent + returns from its system call. Only then + will we have the association of parent and + child so that we know how to do clearbpt + in the child. */ + tcp = alloctcb(pid); + tcp->flags |= TCB_ATTACHED | TCB_SUSPENDED; + 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; + curcol = tcp->curcol; + 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 (pid == strace_child) + exit_code = 0x100 | WTERMSIG(status); + if (cflag != CFLAG_ONLY_STATS + && (qual_flags[WTERMSIG(status)] & QUAL_SIGNAL)) { + printleader(tcp); + tprintf("+++ killed by %s %s+++", + signame(WTERMSIG(status)), +#ifdef WCOREDUMP + WCOREDUMP(status) ? "(core dumped) " : +#endif + ""); + printtrailer(); + } +#ifdef TCB_GROUP_EXITING + handle_group_exit(tcp, -1); +#else + droptcb(tcp); +#endif + continue; + } + if (WIFEXITED(status)) { + if (pid == strace_child) + exit_code = WEXITSTATUS(status); + if (debug) + fprintf(stderr, "pid %u exited with %d\n", pid, WEXITSTATUS(status)); + if ((tcp->flags & (TCB_ATTACHED|TCB_STARTUP)) == TCB_ATTACHED +#ifdef TCB_GROUP_EXITING + && !(tcp->parent && (tcp->parent->flags & TCB_GROUP_EXITING)) + && !(tcp->flags & TCB_GROUP_EXITING) +#endif + ) { + fprintf(stderr, + "PANIC: attached pid %u exited with %d\n", + pid, WEXITSTATUS(status)); + } + 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))); + + /* + * 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. + * A no-MMU vforked child won't send up a signal, + * so skip the first (lost) execve notification. + */ + if ((tcp->flags & TCB_STARTUP) && + (WSTOPSIG(status) == SIGSTOP || strace_vforked)) { + /* + * 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_BPTSET) { + /* + * One example is a breakpoint inherited from + * parent through fork (). + */ + 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_restart(PTRACE_SYSCALL, tcp, 0) < 0) { + cleanup(); + return -1; + } + continue; + } + if (cflag != CFLAG_ONLY_STATS + && (qual_flags[WSTOPSIG(status)] & QUAL_SIGNAL)) { + unsigned long addr = 0; + long pc = 0; +#if defined(PT_CR_IPSR) && defined(PT_CR_IIP) && defined(PT_GETSIGINFO) +# define PSR_RI 41 + struct siginfo si; + long psr; + + upeek(tcp, PT_CR_IPSR, &psr); + upeek(tcp, 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(); + } + 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_restart(PTRACE_SYSCALL, tcp, WSTOPSIG(status)) < 0) { + cleanup(); + return -1; + } + tcp->flags &= ~TCB_SUSPENDED; + continue; + } + /* we handled the STATUS, we are permitted to interrupt now. */ + if (interrupted) + return 0; + if (trace_syscall(tcp) < 0 && !tcp->ptrace_errno) { + /* ptrace() failed in trace_syscall() with ESRCH. + * Likely a result of process disappearing mid-flight. + * Observed case: exit_group() terminating + * all processes in thread group. In this case, threads + * "disappear" in an unpredictable moment without any + * notification to strace via wait(). + */ + if (tcp->flags & TCB_ATTACHED) { + if (tcp_last) { + /* Do we have dangling line "syscall(param, param"? + * Finish the line then. We cannot + */ + tcp_last->flags |= TCB_REPRINT; + tprintf(" <unfinished ...>"); + printtrailer(); + } + 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_restart(PTRACE_CONT, tcp, 0) < 0) { + cleanup(); + return -1; + } + continue; + } + if (tcp->flags & TCB_SUSPENDED) { + if (!qflag) + fprintf(stderr, "Process %u suspended\n", pid); + continue; + } + tracing: + /* Remember current print column before continuing. */ + tcp->curcol = curcol; + if (ptrace_restart(PTRACE_SYSCALL, tcp, 0) < 0) { + cleanup(); + return -1; + } + } + return 0; +} + +#endif /* !USE_PROCFS */ + +#include <stdarg.h> + +void +tprintf(const char *fmt, ...) +{ + va_list args; + + va_start(args, fmt); + if (outf) { + int n = vfprintf(outf, fmt, args); + if (n < 0) { + if (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) { + if (tcp_last->ptrace_errno) { + if (tcp_last->flags & TCB_INSYSCALL) { + tprintf(" <unavailable>)"); + tabto(acolumn); + } + tprintf("= ? <unavailable>\n"); + tcp_last->ptrace_errno = 0; + } else if (!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(void) +{ + 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-4.5.20/strace.spec b/strace-4.5.20/strace.spec new file mode 100644 index 0000000..ad9562c --- /dev/null +++ b/strace-4.5.20/strace.spec
@@ -0,0 +1,460 @@ +Summary: Tracks and displays system calls associated with a running process +Name: strace +Version: 4.5.20 +Release: 1%{?dist} +License: BSD +Group: Development/Debuggers +URL: http://sourceforge.net/projects/strace/ +Source0: http://dl.sourceforge.net/strace/%{name}-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: libaio-devel, libacl-devel + +%define strace64_arches ppc64 sparc64 + +%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 %{?_smp_mflags} + +%install +rm -rf %{buildroot} +make DESTDIR=%{buildroot} install + +# remove unpackaged files from the buildroot +rm -f %{buildroot}%{_bindir}/strace-graph + +%define copy64 ln +%if 0%{?rhel} +%if 0%{?rhel} < 6 +%endif +%define copy64 cp -p +%endif + +%ifarch %{strace64_arches} +%{copy64} %{buildroot}%{_bindir}/strace %{buildroot}%{_bindir}/strace64 +%endif + +%clean +rm -rf %{buildroot} + +%files +%defattr(-,root,root) +%doc CREDITS ChangeLog ChangeLog-CVS COPYRIGHT NEWS PORTING README +%{_bindir}/strace +%{_mandir}/man1/* + +%ifarch %{strace64_arches} +%files -n strace64 +%defattr(-,root,root) +%{_bindir}/strace64 +%endif + +%changelog +* Tue Apr 13 2010 Roland McGrath <roland@redhat.com> - 4.5.20-1 +- New upstream release, work mostly by Andreas Schwab and Dmitry V. Levin. + + fixed potential stack buffer overflow in select decoder (#556678); + + fixed FTBFS (#539044). + +* Wed Oct 21 2009 Roland McGrath <roland@redhat.com> - 4.5.19-1 +- New upstream release, work mostly by Dmitry V. Levin <ldv@altlinux.org> + + exit/kill strace with traced process exitcode/signal (#105371); + + fixed build on ARM EABI (#507576); + + fixed display of 32-bit argv array on 64-bit architectures (#519480); + + fixed display of 32-bit fcntl(F_SETLK) on 64-bit architectures (#471169); + + fixed several bugs in strings decoder, including potential heap + memory corruption (#470529, #478324, #511035). + +* Thu Aug 28 2008 Roland McGrath <roland@redhat.com> - 4.5.18-1 +- build fix for newer kernel headers (#457291) +- fix CLONE_VFORK handling (#455078) +- Support new Linux/PPC system call subpage_prot and PROT_SAO flag. +- In sigaction system call, display sa_flags value along with SIG_DFL/SIG_IGN. + +* Mon Jul 21 2008 Roland McGrath <roland@redhat.com> - 4.5.17-1 +- handle O_CLOEXEC, MSG_CMSG_CLOEXEC (#365781) +- fix biarch stat64 decoding (#222275) +- fix spurious "..." in printing of environment strings (#358241) +- improve prctl decoding (#364401) +- fix hang wait on exited child with exited child (#354261) +- fix biarch fork/vfork (-f) tracing (#447475) +- fix biarch printing of negative argument kill (#430585) +- fix biarch decoding of error return values (#447587) +- fix -f tracing of CLONE_VFORK (#455078) +- fix ia64 register clobberation in -f tracing (#453438) +- print SO_NODEFER, SA_RESETHAND instead of SA_NOMASK, SA_ONESHOT (#455821) +- fix futex argument decoding (#448628, #448629) + +* Fri Aug 3 2007 Roland McGrath <roland@redhat.com> - 4.5.16-1 +- fix multithread issues (#240962, #240961, #247907) +- fix spurious SIGSTOP on early interrupt (#240986) +- fix utime for biarch (#247185) +- fix -u error message (#247170) +- better futex syscall printing (##241467) +- fix argv/envp printing with small -s settings, and for biarch +- new syscalls: getcpu, eventfd, timerfd, signalfd, epoll_pwait, + move_pages, utimensat + +* Tue Jan 16 2007 Roland McGrath <roland@redhat.com> - 4.5.15-1 +- biarch fixes (#179740, #192193, #171626, #173050, #218433, #218043) +- fix -ff -o behavior (#204950, #218435, #193808, #219423) +- better quotactl printing (#118696) +- *at, inotify*, pselect6, ppoll and unshare syscalls (#178633, #191275) +- glibc-2.5 build fixes (#209856) +- memory corruption fixes (#200621 +- fix race in child setup under -f (#180293) +- show ipc key values in hex (#198179, #192182) +- disallow -c with -ff (#187847) +- Resolves: RHBZ #179740, RHBZ #192193, RHBZ #204950, RHBZ #218435 +- Resolves: RHBZ #193808, RHBZ #219423, RHBZ #171626, RHBZ #173050 +- Resolves: RHBZ #218433, RHBZ #218043, RHBZ #118696, RHBZ #178633 +- Resolves: RHBZ #191275, RHBZ #209856, RHBZ #200621, RHBZ #180293 +- Resolves: RHBZ #198179, RHBZ #198182, RHBZ #187847 + +* Mon Nov 20 2006 Jakub Jelinek <jakub@redhat.com> - 4.5.14-4 +- Fix ia64 syscall decoding (#206768) +- Fix build with glibc-2.4.90-33 and up on all arches but ia64 +- Fix build against 2.6.18+ headers + +* Tue Aug 22 2006 Roland McGrath <roland@redhat.com> - 4.5.14-3 +- Fix bogus decoding of syscalls >= 300 (#201462, #202620). + +* Fri Jul 14 2006 Jesse Keating <jkeating@redhat.com> - 4.5.14-2 +- rebuild + +* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 4.5.14-1.2 +- bump again for long double bug on ppc{,64} + +* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 4.5.14-1.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Mon Jan 16 2006 Roland McGrath <roland@redhat.com> - 4.5.14-1 +- Fix biarch decoding of socket syscalls (#174354). +- Fix biarch -e support (#173986). +- Accept numeric syscalls in -e (#174798). +- Fix ipc syscall decoding (#164755). +- Improve msgrcv printing (#164757). +- Man page updates (#165375). +- Improve mount syscall printing (#165377). +- Correct printing of restarting syscalls (#165469). + +* Wed Aug 3 2005 Roland McGrath <roland@redhat.com> - 4.5.13-1 +- Fix setsockopt decoding on 64-bit (#162449). +- Fix typos in socket option name strings (#161578). +- Display more IPV6 socket options by name (#162450). +- Don't display inappropriate syscalls for -e trace=file (#159340). +- New selector type -e trace=desc for file-descriptor using calls (#159400). +- Fix 32-bit old_mmap syscall decoding on x86-64 (#162467, #164215). +- Fix errors detaching from multithreaded process on interrupt (#161919). +- Note 4.5.12 fix for crash handling bad signal numbers (#162739). + +* 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-4.5.20/stream.c b/strace-4.5.20/stream.c new file mode 100644 index 0000000..41fd823 --- /dev/null +++ b/strace-4.5.20/stream.c
@@ -0,0 +1,1396 @@ +/* + * 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$ + */ + +#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; +} + +#if defined(SPARC) || defined(SPARC64) || defined(SUNOS4) || defined(SVR4) +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; +} +#endif /* SPARC || SPARC64 || SUNOS4 || SVR4 */ + +#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 }, +}; + +static int +decode_poll(struct tcb *tcp, long pts) +{ + struct pollfd fds; + unsigned nfds; + unsigned long size, start, cur, end, abbrev_end; + int failed = 0; + + if (entering(tcp)) { + 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, ", + tcp->u_arg[0], nfds); + 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???"); + tprintf("}"); + } + tprintf("]"); + if (failed) + tprintf(" %#lx", start); + tprintf(", %d, ", nfds); + return 0; + } else { + static char outstr[1024]; + char str[64]; + const char *flagstr; + unsigned int cumlen; + + if (syserror(tcp)) + return 0; + if (tcp->u_rval == 0) { + tcp->auxstr = "Timeout"; + return RVAL_STR; + } + + 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) + return 0; + if (abbrev(tcp)) { + abbrev_end = start + max_strlen * sizeof(fds); + if (abbrev_end < start) + abbrev_end = end; + } else { + abbrev_end = end; + } + + outstr[0] = '\0'; + cumlen = 0; + + for (cur = start; cur < end; cur += sizeof(fds)) { + if (umoven(tcp, cur, sizeof fds, (char *) &fds) < 0) { + ++cumlen; + if (cumlen < sizeof(outstr)) + strcat(outstr, "?"); + failed = 1; + break; + } + if (!fds.revents) + continue; + if (!cumlen) { + ++cumlen; + strcat(outstr, "["); + } else { + cumlen += 2; + if (cumlen < sizeof(outstr)) + strcat(outstr, ", "); + } + if (cur >= abbrev_end) { + cumlen += 3; + if (cumlen < sizeof(outstr)) + strcat(outstr, "..."); + break; + } + sprintf(str, "{fd=%d, revents=", fds.fd); + flagstr=sprintflags("", pollflags, fds.revents); + cumlen += strlen(str) + strlen(flagstr) + 1; + if (cumlen < sizeof(outstr)) { + strcat(outstr, str); + strcat(outstr, flagstr); + strcat(outstr, "}"); + } + } + if (failed) + return 0; + + if (cumlen && ++cumlen < sizeof(outstr)) + strcat(outstr, "]"); + + if (pts) { + char str[128]; + + sprintf(str, "%sleft ", cumlen ? ", " : ""); + sprint_timespec(str + strlen(str), tcp, pts); + if ((cumlen += strlen(str)) < sizeof(outstr)) + strcat(outstr, str); + } + + if (!outstr[0]) + return 0; + + tcp->auxstr = outstr; + return RVAL_STR; + } +} + +int +sys_poll(struct tcb *tcp) +{ + int rc = decode_poll(tcp, 0); + if (entering(tcp)) { +#ifdef INFTIM + if (tcp->u_arg[2] == INFTIM) + tprintf("INFTIM"); + else +#endif + tprintf("%ld", tcp->u_arg[2]); + } + return rc; +} + +#ifdef LINUX +int +sys_ppoll(struct tcb *tcp) +{ + int rc = decode_poll(tcp, tcp->u_arg[2]); + if (entering(tcp)) { + print_timespec(tcp, tcp->u_arg[2]); + tprintf(", "); + print_sigset(tcp, tcp->u_arg[3], 0); + tprintf(", %lu", tcp->u_arg[4]); + } + return rc; +} +#endif + +#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(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 (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); + 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 && !syserror(tcp)) { + 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/strace-4.5.20/sunos4/dummy.h b/strace-4.5.20/sunos4/dummy.h new file mode 100644 index 0000000..9f0259d --- /dev/null +++ b/strace-4.5.20/sunos4/dummy.h
@@ -0,0 +1,212 @@ +/* + * 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$ + */ + +/* Obsolete syscalls */ +#define sys_otime printargs +#define sys_osetuid printargs +#define sys_ostime printargs +#define sys_oalarm printargs +#define sys_ofstat printargs +#define sys_opause printargs +#define sys_outime printargs +#define sys_onice printargs +#define sys_oftime printargs +#define sys_osetpgrp printargs +#define sys_otimes printargs +#define sys_osetgid printargs +#define sys_ossig printargs +#define sys_owait3 printargs +#define sys_omsync printargs +#define sys_ovadvise printargs +#define sys_omadvise printargs +#define sys_ovlimit printargs +#define sys_owait printargs +#define sys_ovtimes printargs +#define sys_oldquota printargs +#define sys_getdirentries printargs + +/* No interesting parameters or return values */ +#define sys_vhangup printargs +#define sys_sys_setsid printargs +#define sys_errsys printargs +#define sys_nosys printargs + +/* Don't know what to do with these */ +#define sys_sstk printargs +#define sys_profil printargs +#define sys_vtrace printargs +#define sys_async_daemon printargs +#define sys_nfs_getfh printargs +#define sys_rtschedule printargs +#define sys_auditsys printargs +#define sys_rfssys printargs +#define sys_vpixsys printargs +#define sys_getdopt printargs +#define sys_setdopt printargs +#define sys_semsys printargs +#define sys_msgsys printargs +#define sys_shmsys printargs +#define sys_semop printargs + +#if DONE +#define sys_rexit printargs +#define sys_indir printargs +#define sys_read printargs +#define sys_write printargs +#define sys_readv printargs +#define sys_writev printargs +#define sys_ioctl printargs +#define sys_fcntl printargs +#define sys_fstat printargs +#define sys_stat printargs +#define sys_lstat printargs +#define sys_open printargs +#define sys_creat printargs +#define sys_close printargs +#define sys_chdir printargs +#define sys_fchdir printargs +#define sys_mkdir printargs +#define sys_rmdir printargs +#define sys_chroot printargs +#define sys_fchroot printargs +#define sys_mknod printargs +#define sys_link printargs +#define sys_unlink printargs +#define sys_chown printargs +#define sys_fchown printargs +#define sys_chmod printargs +#define sys_fchmod printargs +#define sys_utimes printargs +#define sys_symlink printargs +#define sys_readlink printargs +#define sys_rename printargs +#define sys_getdents printargs +#define sys_truncate printargs +#define sys_ftruncate printargs +#define sys_access printargs +#define sys_lseek printargs +#define sys_socket printargs +#define sys_bind printargs +#define sys_connect printargs +#define sys_listen printargs +#define sys_accept printargs +#define sys_shutdown printargs +#define sys_send printargs +#define sys_sendto printargs +#define sys_sendmsg printargs +#define sys_recv printargs +#define sys_recvfrom printargs +#define sys_recvmsg printargs +#define sys_pipe printargs +#define sys_socketpair printargs +#define sys_setsockopt printargs +#define sys_getsockopt printargs +#define sys_getsockname printargs +#define sys_getpeername printargs +#define sys_gethostid printargs +#define sys_gethostname printargs +#define sys_sethostname printargs +#define sys_getpid printargs +#define sys_getdomainname printargs +#define sys_setdomainname printargs +#define sys_vfork printargs +#define sys_fork printargs +#define sys_getuid printargs +#define sys_getgid printargs +#define sys_setreuid printargs +#define sys_setregid printargs +#define sys_getgroups printargs +#define sys_setgroups printargs +#define sys_getpgrp printargs +#define sys_setpgrp printargs +#define sys_setpgid printargs +#define sys_execv printargs +#define sys_execve printargs +#define sys_wait4 printargs +#define sys_uname printargs +#define sys_ptrace printargs +#define sys_brk printargs +#define sys_sbrk printargs +#define sys_mmap printargs +#define sys_munmap printargs +#define sys_mprotect printargs +#define sys_mctl printargs +#define sys_mincore printargs +#define sys_sigvec printargs +#define sys_sigblock printargs +#define sys_sigsetmask printargs +#define sys_sigpause printargs +#define sys_sigstack printargs +#define sys_sigcleanup printargs +#define sys_sigpending printargs +#define sys_kill printargs +#define sys_killpg printargs +#define sys_dup printargs +#define sys_dup2 printargs +#define sys_getdtablesize printargs +#define sys_select printargs +#define sys_flock printargs +#define sys_umask printargs +#define sys_gettimeofday printargs +#define sys_settimeofday printargs +#define sys_getitimer printargs +#define sys_setitimer printargs +#define sys_adjtime printargs +#define sys_setpriority printargs +#define sys_getpriority printargs +#define sys_getrusage printargs +#define sys_getrlimit printargs +#define sys_setrlimit printargs +#define sys_quotactl printargs +#define sys_sysacct printargs +#define sys_reboot printargs +#define sys_sync printargs +#define sys_mount printargs +#define sys_umount printargs +#define sys_unmount printargs +#define sys_swapon printargs +#define sys_fsync printargs +#define sys_exportfs printargs +#define sys_nfs_svc printargs +#define sys_statfs printargs +#define sys_fstatfs printargs +#define sys_ustat printargs +#define sys_aioread printargs +#define sys_aiowrite printargs +#define sys_aiowait printargs +#define sys_aiocancel printargs +#define sys_getpagesize printargs +#define sys_pathconf printargs +#define sys_fpathconf printargs +#define sys_sysconf printargs +#define sys_getmsg printargs +#define sys_putmsg printargs +#define sys_poll printargs +#endif
diff --git a/strace-4.5.20/sunos4/errnoent.h b/strace-4.5.20/sunos4/errnoent.h new file mode 100644 index 0000000..b90eb53 --- /dev/null +++ b/strace-4.5.20/sunos4/errnoent.h
@@ -0,0 +1,91 @@ + "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 */
diff --git a/strace-4.5.20/sunos4/ioctlent.h b/strace-4.5.20/sunos4/ioctlent.h new file mode 100644 index 0000000..6bfc79b --- /dev/null +++ b/strace-4.5.20/sunos4/ioctlent.h
@@ -0,0 +1,493 @@ +{"sun/audioio.h", "AUDIO_DRAIN", 0x20004103}, +{"sun/isdnio.h", "ISDN_PH_ACTIVATE_REQ", 0x2000410a}, +{"sun/isdnio.h", "ISDN_MPH_DEACTIVATE_REQ", 0x2000410b}, +{"sun/fbio.h", "FBIO_WID_DBL_SET", 0x20004625}, +{"pixrect/gp1var.h", "GP1IO_SCMAP", 0x20004766}, +{"sun/mem.h", "MM_HRCNT", 0x20004d02}, +{"sundev/openpromio.h", "OPROMGETOPT", 0x20004f01}, +{"sundev/openpromio.h", "OPROMSETOPT", 0x20004f02}, +{"sundev/openpromio.h", "OPROMNXTOPT", 0x20004f03}, +{"sundev/openpromio.h", "OPROMSETOPT2", 0x20004f04}, +{"sundev/openpromio.h", "OPROMNEXT", 0x20004f05}, +{"sundev/openpromio.h", "OPROMCHILD", 0x20004f06}, +{"sundev/openpromio.h", "OPROMGETPROP", 0x20004f07}, +{"sundev/openpromio.h", "OPROMNXTPROP", 0x20004f08}, +{"sundev/openpromio.h", "OPROMU2P", 0x20004f09}, +{"sundev/openpromio.h", "OPROMGETCONS", 0x20004f0a}, +{"stropts.h", "I_POP", 0x20005303}, +{"sys/stropts.h", "I_POP", 0x20005303}, +{"stropts.h", "I_FLUSH", 0x20005305}, +{"sys/stropts.h", "I_FLUSH", 0x20005305}, +{"sys/stropts.h", "I_SRDOPT", 0x20005306}, +{"stropts.h", "I_SRDOPT", 0x20005306}, +{"sys/stropts.h", "I_SETSIG", 0x20005309}, +{"stropts.h", "I_SETSIG", 0x20005309}, +{"sys/stropts.h", "I_LINK", 0x2000530c}, +{"stropts.h", "I_LINK", 0x2000530c}, +{"sys/stropts.h", "I_UNLINK", 0x2000530d}, +{"stropts.h", "I_UNLINK", 0x2000530d}, +{"sys/stropts.h", "I_SENDFD", 0x20005311}, +{"stropts.h", "I_SENDFD", 0x20005311}, +{"sys/stropts.h", "I_PLINK", 0x20005313}, +{"stropts.h", "I_PLINK", 0x20005313}, +{"stropts.h", "I_PUNLINK", 0x20005314}, +{"sys/stropts.h", "I_PUNLINK", 0x20005314}, +{"termio.h", "TCSBRK", 0x20005405}, +{"sys/termio.h", "TCSBRK", 0x20005405}, +{"termios.h", "TCXONC", 0x20005406}, +{"sys/termios.h", "TCXONC", 0x20005406}, +{"sys/termios.h", "TCFLSH", 0x20005407}, +{"termios.h", "TCFLSH", 0x20005407}, +{"sun/tvio.h", "TVIOGRAB", 0x2000581d}, +{"sun/tvio.h", "TVIORELEASE", 0x2000581e}, +{"sun/tvio.h", "TVIOREDIRECT", 0x20005822}, +{"sun/tvio.h", "TVIOSYNC", 0x20005825}, +{"sun/tvio.h", "TVIOVWAIT", 0x2000582d}, +{"sun/tvio.h", "TVIOSLOOPBACKCAL", 0x2000583d}, +{"sbusdev/bpp_io.h", "BPPIOC_TESTIO", 0x20006206}, +{"scsi/targets/srdef.h", "CDROMPAUSE", 0x2000630a}, +{"sundev/srreg.h", "CDROMPAUSE", 0x2000630a}, +{"sundev/srreg.h", "CDROMRESUME", 0x2000630b}, +{"sundev/srreg.h", "CDROMSTOP", 0x20006369}, +{"scsi/targets/srdef.h", "CDROMSTOP", 0x20006369}, +{"scsi/targets/srdef.h", "CDROMSTART", 0x2000636a}, +{"sundev/srreg.h", "CDROMSTART", 0x2000636a}, +{"scsi/targets/srdef.h", "CDROMEJECT", 0x2000636b}, +{"sundev/srreg.h", "CDROMEJECT", 0x2000636b}, +{"sun/dkio.h", "FDKEJECT", 0x20006470}, +{"sys/filio.h", "FIOCLEX", 0x20006601}, +{"sys/filio.h", "FIONCLEX", 0x20006602}, +{"sys/filio.h", "FIOLFS", 0x20006640}, +{"sys/filio.h", "FIOLFSS", 0x20006641}, +{"sys/filio.h", "FIOFFS", 0x20006642}, +{"sys/filio.h", "FIOAI", 0x20006643}, +{"sys/filio.h", "FIODUTIMES", 0x20006644}, +{"sys/filio.h", "FIODIO", 0x20006645}, +{"sys/filio.h", "FIODIOS", 0x20006646}, +{"sunwindow/win_ioctl.h", "WININSERT", 0x20006703}, +{"sunwindow/win_ioctl.h", "WINREMOVE", 0x20006704}, +{"sunwindow/win_ioctl.h", "WINCOMPUTECLIPPING", 0x20006712}, +{"sunwindow/win_ioctl.h", "WINLOCKDATA", 0x20006715}, +{"sunwindow/win_ioctl.h", "WINUNLOCKDATA", 0x20006716}, +{"sunwindow/win_ioctl.h", "WINGRABIO", 0x20006717}, +{"sunwindow/win_ioctl.h", "WINRELEASEIO", 0x20006718}, +{"sunwindow/win_ioctl.h", "WINUNLOCKEVENT", 0x2000671c}, +{"sunwindow/win_ioctl.h", "WINUNLOCKSCREEN", 0x2000671e}, +{"sunwindow/win_ioctl.h", "WINSCREENDESTROY", 0x2000672a}, +{"sunwindow/win_ioctl.h", "WINPRINT", 0x2000672c}, +{"sunwindow/win_ioctl.h", "WINREFUSEKBDFOCUS", 0x2000673a}, +{"sunwindow/win_ioctl.h", "WINDBLACCESS", 0x20006747}, +{"sunwindow/win_ioctl.h", "WINDBLFLIP", 0x20006748}, +{"sunwindow/win_ioctl.h", "WINDBLABSORB", 0x20006749}, +{"sunwindow/win_ioctl.h", "WINDBLRLSE", 0x2000674a}, +{"sunwindow/win_ioctl.h", "WINSHAREQUEUE", 0x20006750}, +{"sunwindow/win_ioctl.h", "WINDISCONNECT", 0x20006798}, +{"sunwindow/win_ioctl.h", "WINRECONNECT", 0x20006799}, +{"sun/ndio.h", "NDIOCSON", 0x20006e00}, +{"sun/ndio.h", "NDIOCSOFF", 0x20006e01}, +{"sun/ndio.h", "NDIOCCLEAR", 0x20006e05}, +{"net/nit_buf.h", "NIOCCTIME", 0x20007008}, +{"sys/ttold.h", "TIOCHPCL", 0x20007402}, +{"sbusdev/gtreg.h", "FB_SETSERVER", 0x20007407}, +{"sys/ttold.h", "TIOCEXCL", 0x2000740d}, +{"sys/ttold.h", "TIOCNXCL", 0x2000740e}, +{"sbusdev/gtreg.h", "FB_DISCONNECT", 0x20007410}, +{"sbusdev/gtreg.h", "FB_UNGRABHW", 0x20007414}, +{"sys/ttycom.h", "TIOCCONS", 0x20007424}, +{"sys/ttold.h", "_O_TIOCCONS", 0x20007468}, +{"sys/ttold.h", "TIOCSTART", 0x2000746e}, +{"sys/ttold.h", "TIOCSTOP", 0x2000746f}, +{"sys/ttycom.h", "TIOCNOTTY", 0x20007471}, +{"sys/ttold.h", "TIOCCDTR", 0x20007478}, +{"sys/ttold.h", "TIOCSDTR", 0x20007479}, +{"sys/ttold.h", "TIOCCBRK", 0x2000747a}, +{"sys/ttold.h", "TIOCSBRK", 0x2000747b}, +{"sys/ttycom.h", "TIOCSCTTY", 0x20007484}, +{"sun/gpio.h", "GP1IO_GET_TRUMINORDEV", 0x40014708}, +{"sundev/kbio.h", "KIOCGLED", 0x40016b0f}, +{"sundev/ppreg.h", "PPIOCGETS", 0x40017000}, +{"sundev/ppreg.h", "PPIOCGETC", 0x40017001}, +{"sun/gpio.h", "GP1IO_GET_REQDEV", 0x40024707}, +{"sun/tvio.h", "TVIOGBIND", 0x4002581f}, +{"sbusdev/bpp_io.h", "BPPIOC_GETOUTPINS", 0x40026204}, +{"sundev/srreg.h", "CDROMREADTOCHDR", 0x40026367}, +{"sbusdev/bpp_io.h", "BPPIOC_GETERR", 0x40036205}, +{"sun/audioio.h", "AUDIO_GETDEV", 0x40044104}, +{"sun/fbio.h", "FBIOGVIDEO", 0x40044608}, +{"sun/fbio.h", "GRABPAGEALLOC", 0x4004460a}, +{"sun/fbio.h", "FBIOGPLNGRP", 0x4004460d}, +{"sun/fbio.h", "FBIOGCMSIZE", 0x4004460e}, +{"sun/fbio.h", "FBIOAVAILPLNGRP", 0x40044611}, +{"sun/fbio.h", "FBIOSWINFD", 0x40044614}, +{"sun/fbio.h", "FBIOSAVWINFD", 0x40044615}, +{"sun/fbio.h", "FBIORESWINFD", 0x40044616}, +{"sun/fbio.h", "FBIOSRWINFD", 0x40044617}, +{"sun/fbio.h", "FBIOGCURMAX", 0x4004461c}, +{"sun/fbio.h", "GRABLOCKINFO", 0x4004461d}, +{"sun/fbio.h", "FBIO_DEVID", 0x40044622}, +{"sun/fbio.h", "FBIO_FULLSCREEN_ELIMINATION_GROUPS", 0x40044624}, +{"sun/fbio.h", "FBIOVRTOFFSET", 0x40044626}, +{"sun/gpio.h", "GP1IO_GET_STATIC_BLOCK", 0x40044701}, +{"sun/gpio.h", "GP1IO_GET_GBUFFER_STATE", 0x40044703}, +{"sun/gpio.h", "GP1IO_GET_RESTART_COUNT", 0x40044705}, +{"sun/gpio.h", "GP1IO_CHK_FOR_GBUFFER", 0x40044709}, +{"stropts.h", "I_NREAD", 0x40045301}, +{"sys/stropts.h", "I_NREAD", 0x40045301}, +{"sys/stropts.h", "I_GRDOPT", 0x40045307}, +{"stropts.h", "I_GRDOPT", 0x40045307}, +{"sys/stropts.h", "I_GETSIG", 0x4004530a}, +{"stropts.h", "I_GETSIG", 0x4004530a}, +{"sun/tvio.h", "TVIOGFORMAT", 0x40045801}, +{"sun/tvio.h", "TVIOGCOMPOUT", 0x40045803}, +{"sun/tvio.h", "TVIOGSYNC", 0x40045805}, +{"pixrect/cg8var.h", "PIPIO_G_PIP_ON_OFF", 0x40045805}, +{"sun/tvio.h", "TVIOGOUT", 0x40045807}, +{"sun/tvio.h", "TVIOGCOMPRESS", 0x40045809}, +{"pixrect/cg8var.h", "PIPIO_G_PIP_ON_OFF_RESUME", 0x40045809}, +{"pixrect/cg8var.h", "PIPIO_G_PIP_ON_OFF_SUSPEND", 0x4004580a}, +{"sun/tvio.h", "TVIOGCHROMAGAIN", 0x4004580b}, +{"sun/tvio.h", "TVIOGREDGAIN", 0x4004580d}, +{"sun/tvio.h", "TVIOGREDBLACK", 0x4004580f}, +{"sun/tvio.h", "TVIOGGREENGAIN", 0x40045811}, +{"sun/tvio.h", "TVIOGGREENBLACK", 0x40045813}, +{"sun/tvio.h", "TVIOGBLUEGAIN", 0x40045815}, +{"sun/tvio.h", "TVIOGBLUEBLACK", 0x40045817}, +{"sun/tvio.h", "TVIOGLUMAGAIN", 0x40045819}, +{"sun/tvio.h", "TVIOGBTYPE", 0x40045821}, +{"sun/tvio.h", "TVIOGLIVE", 0x40045823}, +{"sun/tvio.h", "TVIOGCHROMASEP", 0x40045827}, +{"pixrect/cg8var.h", "PIPIO_G_CURSOR_COLOR_FREEZE", 0x40045828}, +{"sun/tvio.h", "TVIOGCHROMADEMOD", 0x40045829}, +{"pixrect/cg8var.h", "PIPIO_G_TEST", 0x4004582b}, +{"sun/tvio.h", "TVIOGGENLOCK", 0x4004582b}, +{"sun/tvio.h", "TVIOGSYNCABSENT", 0x4004582e}, +{"sun/tvio.h", "TVIOGBURSTABSENT", 0x4004582f}, +{"sun/tvio.h", "TVIOGIBSTATE", 0x40045837}, +{"sun/tvio.h", "TVIOGABSTATE", 0x40045839}, +{"sun/tvio.h", "TVIOGCONTROL", 0x4004583b}, +{"sun/dkio.h", "FDKGETCHANGE", 0x4004646f}, +{"sys/filio.h", "FIOGETOWN", 0x4004667b}, +{"sys/filio.h", "FIONREAD", 0x4004667f}, +{"sunwindow/win_ioctl.h", "WINGETUSERFLAGS", 0x4004670e}, +{"sunwindow/win_ioctl.h", "WINGETOWNER", 0x40046710}, +{"sunwindow/win_ioctl.h", "WINGETBUTTONORDER", 0x40046724}, +{"sunwindow/win_ioctl.h", "WINGETNEXTINPUT", 0x40046739}, +{"sunwindow/win_ioctl.h", "WINGETPLANEGROUP", 0x40046740}, +{"sunwindow/win_ioctl.h", "WINGETNOTIFYALL", 0x40046751}, +{"sundev/kbio.h", "KIOCGTRANS", 0x40046b05}, +{"sundev/kbio.h", "KIOCGTRANSABLE", 0x40046b07}, +{"sundev/kbio.h", "KIOCTYPE", 0x40046b09}, +{"sundev/kbio.h", "KIOCGDIRECT", 0x40046b0b}, +{"sundev/kbio.h", "KIOCGCOMPAT", 0x40046b11}, +{"sundev/kbio.h", "KIOCLAYOUT", 0x40046b14}, +{"sys/sockio.h", "SIOCGHIWAT", 0x40047301}, +{"sys/sockio.h", "SIOCGLOWAT", 0x40047303}, +{"sys/sockio.h", "SIOCATMARK", 0x40047307}, +{"sys/sockio.h", "SIOCGPGRP", 0x40047309}, +{"sys/ttold.h", "TIOCGETD", 0x40047400}, +{"sys/ttold.h", "TIOCMODG", 0x40047403}, +{"sbusdev/gtreg.h", "FB_GETWPART", 0x4004740a}, +{"sbusdev/gtreg.h", "FB_GETMONITOR", 0x4004740c}, +{"sbusdev/gtreg.h", "FB_GRABHW", 0x40047413}, +{"sbusdev/gtreg.h", "FB_GETCLUTPART", 0x40047418}, +{"sys/ttold.h", "TIOCGETX", 0x40047423}, +{"sys/ttycom.h", "TIOCGSOFTCAR", 0x40047464}, +{"sys/ttycom.h", "TIOCMGET", 0x4004746a}, +{"sys/ttycom.h", "TIOCOUTQ", 0x40047473}, +{"sys/ttycom.h", "TIOCGPGRP", 0x40047477}, +{"sys/ttold.h", "TIOCLGET", 0x4004747c}, +{"sys/ttycom.h", "TIOCISPACE", 0x40047480}, +{"sys/ttycom.h", "TIOCISIZE", 0x40047481}, +{"sys/ttycom.h", "TIOCGETPGRP", 0x40047483}, +{"sys/vcmd.h", "VGETSTATE", 0x40047600}, +{"sundev/vuid_event.h", "VUIDGFORMAT", 0x40047602}, +{"sun/dkio.h", "DKIOCGTYPE", 0x4006647c}, +{"sys/ttold.h", "TIOCGETP", 0x40067408}, +{"sys/ttold.h", "TIOCGETC", 0x40067412}, +{"sys/ttold.h", "TIOCGLTC", 0x40067474}, +{"sun/tvio.h", "TVIOGPOS", 0x4008581b}, +{"sun/dkio.h", "DKIOCGPART", 0x40086404}, +{"sun/dkio.h", "FDKGETSEARCH", 0x4008646c}, +{"sunwindow/win_ioctl.h", "WINNEXTFREE", 0x40086705}, +{"sunwindow/win_ioctl.h", "WINGETRECT", 0x4008670a}, +{"sunwindow/win_ioctl.h", "WINGETSAVEDRECT", 0x4008670d}, +{"sunwindow/win_ioctl.h", "WINGETEVENTTIMEOUT", 0x4008673c}, +{"sunwindow/win_ioctl.h", "WINDBLCURRENT", 0x4008674d}, +{"sun/sqz.h", "SQZGET", 0x40087102}, +{"sbusdev/gtreg.h", "FB_GETLIGHTPENPARAM", 0x4008741b}, +{"sbusdev/gtreg.h", "FB_GETGAMMA", 0x40087420}, +{"sys/ttycom.h", "TIOCGSIZE", 0x40087426}, +{"sys/ttold.h", "_O_TIOCGSIZE", 0x40087466}, +{"sys/ttycom.h", "TIOCGWINSZ", 0x40087468}, +{"sun/dkio.h", "DKIOCINFO", 0x400c6408}, +{"sun/dkio.h", "DKIOCGDIAG", 0x400c6474}, +{"sun/dkio.h", "DKIOCGLOG", 0x400c6476}, +{"sunwindow/win_ioctl.h", "WINGETFOCUSEVENT", 0x400c6747}, +{"sunwindow/win_ioctl.h", "WINGETSWALLOWEVENT", 0x400c6749}, +{"pixrect/cg8var.h", "PIPIO_G_EMULATION_MODE", 0x400e5803}, +{"sun/fbio.h", "FBIOGXINFO", 0x40104627}, +{"sys/stropts.h", "I_RECVFD", 0x40105312}, +{"stropts.h", "I_RECVFD", 0x40105312}, +{"sunwindow/win_ioctl.h", "WINGETSCREENPOSITIONS", 0x4010672d}, +{"scsi/targets/stdef.h", "STIOCGET", 0x40106d02}, +{"sundev/streg.h", "STIOCGET", 0x40106d02}, +{"sys/termio.h", "TCGETA", 0x40125401}, +{"termio.h", "TCGETA", 0x40125401}, +{"sunwindow/win_ioctl.h", "WINGETAVAILPLANEGROUPS", 0x40146742}, +{"sun/fbio.h", "FBIOGTYPE", 0x40184600}, +{"sun/fbio.h", "FBIOGINFO", 0x40184602}, +{"sun/fbio.h", "FBIODBLGINFO", 0x40184612}, +{"sys/mtio.h", "MTIOCGET", 0x40186d02}, +{"sun/dkio.h", "FDKIOGCHAR", 0x401c6472}, +{"sun/fbio.h", "FBIOMONINFO", 0x40204628}, +{"sbusdev/bpp_io.h", "BPPIOC_GETPARMS", 0x40206202}, +{"sbusdev/gtreg.h", "FB_GT_GETVERSION", 0x40207429}, +{"sys/termios.h", "TCGETS", 0x40245408}, +{"termios.h", "TCGETS", 0x40245408}, +{"sun/dkio.h", "DKIOCGGEOM", 0x40266402}, +{"sunwindow/win_ioctl.h", "WINGETKBDMASK", 0x40346734}, +{"sunwindow/win_ioctl.h", "WINGETPICKMASK", 0x40346735}, +{"sun/dkio.h", "FDKGETDRIVECHAR", 0x4038646e}, +{"sun/dkio.h", "DKIOCGCONF", 0x403c647e}, +{"sun/tvio.h", "TVIOGVIDEOCAL", 0x40405831}, +{"sun/tvio.h", "TVIONVREAD", 0x40405833}, +{"sun/dkio.h", "DKIOCGAPART", 0x4040647a}, +{"sunwindow/win_ioctl.h", "WINGETSCALING", 0x40406726}, +{"sun/fbio.h", "FBIOGATTR", 0x40584606}, +{"sunwindow/win_ioctl.h", "WINSCREENGET", 0x40646729}, +{"sunwindow/win_ioctl.h", "WINGETINPUTMASK", 0x406c6713}, +{"sun/audioio.h", "AUDIO_GETINFO", 0x40844101}, +{"pixrect/cg8var.h", "PIPIO_G_FB_INFO", 0x40d05801}, +{"sundev/kbio.h", "KIOCSLED", 0x80016b0e}, +{"sundev/ppreg.h", "PPIOCSETC", 0x80017002}, +{"sys/ttycom.h", "TIOCSTI", 0x80017472}, +{"sun/tvio.h", "TVIOSBIND", 0x80025820}, +{"sbusdev/bpp_io.h", "BPPIOC_SETOUTPINS", 0x80026203}, +{"sun/isdnio.h", "ISDN_MESSAGE_SET", 0x8004410c}, +{"sun/fbio.h", "FBIOSVIDEO", 0x80044607}, +{"sun/fbio.h", "FBIOVERTICAL", 0x80044609}, +{"sun/fbio.h", "GRABPAGEFREE", 0x8004460b}, +{"sun/fbio.h", "GRABATTACH", 0x8004460c}, +{"sun/fbio.h", "FBIOSCMSIZE", 0x8004460f}, +{"sun/fbio.h", "FBIOSCMS", 0x80044610}, +{"sun/fbio.h", "FBIOSCURPOS", 0x8004461a}, +{"sun/fbio.h", "FBIOGCURPOS", 0x8004461b}, +{"sun/fbio.h", "FBIO_U_RST", 0x80044623}, +{"sun/gpio.h", "GP1IO_FREE_STATIC_BLOCK", 0x80044702}, +{"sun/gpio.h", "GP1IO_CHK_GP", 0x80044704}, +{"sun/gpio.h", "GP1IO_REDIRECT_DEVFB", 0x80044706}, +{"sun/gpio.h", "GP1IO_SET_USING_GBUFFER", 0x8004470a}, +{"sun/mem.h", "MM_CCRW", 0x80044d03}, +{"sun/mem.h", "MM_PCNT0", 0x80044d04}, +{"sun/mem.h", "MM_PCNT1", 0x80044d05}, +{"sun/vddrv.h", "VDFREEVADDR", 0x80045604}, +{"sun/tvio.h", "TVIOSFORMAT", 0x80045802}, +{"sun/tvio.h", "TVIOSCOMPOUT", 0x80045804}, +{"sun/tvio.h", "TVIOSSYNC", 0x80045806}, +{"pixrect/cg8var.h", "PIPIO_S_PIP_ON_OFF", 0x80045807}, +{"sun/tvio.h", "TVIOSOUT", 0x80045808}, +{"sun/tvio.h", "TVIOSCOMPRESS", 0x8004580a}, +{"sun/tvio.h", "TVIOSCHROMAGAIN", 0x8004580c}, +{"sun/tvio.h", "TVIOSREDGAIN", 0x8004580e}, +{"sun/tvio.h", "TVIOSREDBLACK", 0x80045810}, +{"sun/tvio.h", "TVIOSGREENGAIN", 0x80045812}, +{"sun/tvio.h", "TVIOSGREENBLACK", 0x80045814}, +{"sun/tvio.h", "TVIOSBLUEGAIN", 0x80045816}, +{"sun/tvio.h", "TVIOSBLUEBLACK", 0x80045818}, +{"sun/tvio.h", "TVIOSLUMAGAIN", 0x8004581a}, +{"sun/tvio.h", "TVIOSLIVE", 0x80045824}, +{"sun/tvio.h", "TVIOSCHROMASEP", 0x80045828}, +{"pixrect/cg8var.h", "PIPIO_S_CURSOR_COLOR_FREEZE", 0x80045829}, +{"pixrect/cg8var.h", "PIPIO_S_MAP_SLOT", 0x8004582a}, +{"sun/tvio.h", "TVIOSCHROMADEMOD", 0x8004582a}, +{"pixrect/cg8var.h", "PIPIO_S_TEST", 0x8004582c}, +{"sun/tvio.h", "TVIOSGENLOCK", 0x8004582c}, +{"sun/tvio.h", "TVIOSIBADVANCE", 0x80045835}, +{"sun/tvio.h", "TVIOSABSTATE", 0x80045838}, +{"sun/tvio.h", "TVIOSCONTROL", 0x8004583c}, +{"sundev/srreg.h", "CDROMPLAYTRKIND", 0x8004630d}, +{"scsi/targets/srdef.h", "CDROMPLAYTRKIND", 0x8004630d}, +{"sundev/srreg.h", "CDROMVOLCTRL", 0x8004630e}, +{"sun/dkio.h", "DKIOCGBAD", 0x80046478}, +{"sun/dkio.h", "DKIOCSBAD", 0x80046479}, +{"sys/filio.h", "FIOSETOWN", 0x8004667c}, +{"sys/filio.h", "FIOASYNC", 0x8004667d}, +{"sys/filio.h", "FIONBIO", 0x8004667e}, +{"sunwindow/win_ioctl.h", "WINSETMOUSE", 0x80046706}, +{"sunwindow/win_ioctl.h", "WINSETUSERFLAGS", 0x8004670f}, +{"sunwindow/win_ioctl.h", "WINSETOWNER", 0x80046711}, +{"sunwindow/win_ioctl.h", "WINDONEDAMAGED", 0x80046721}, +{"sunwindow/win_ioctl.h", "WINSETBUTTONORDER", 0x80046725}, +{"sunwindow/win_ioctl.h", "WINSETNEXTINPUT", 0x80046738}, +{"sunwindow/win_ioctl.h", "WINSETKBDFOCUS", 0x8004673d}, +{"sunwindow/win_ioctl.h", "WINSETPLANEGROUP", 0x8004673f}, +{"sunwindow/win_ioctl.h", "WINSETNOTIFYALL", 0x80046752}, +{"sunwindow/win_ioctl.h", "WINSETRECQUE", 0x800467c8}, +{"sunwindow/win_ioctl.h", "WINSETRECORD", 0x800467c9}, +{"sunwindow/win_ioctl.h", "WINSETPLAYBACK", 0x800467cb}, +{"sys/sockio.h", "SIOCSPROMISC", 0x80046930}, +{"sundev/kbio.h", "KIOCTRANS", 0x80046b00}, +{"sundev/kbio.h", "KIOCTRANSABLE", 0x80046b06}, +{"sundev/kbio.h", "KIOCCMD", 0x80046b08}, +{"sundev/kbio.h", "KIOCSDIRECT", 0x80046b0a}, +{"sundev/kbio.h", "KIOCSCOMPAT", 0x80046b10}, +{"sun/ndio.h", "NDIOCSAT", 0x80046e04}, +{"sun/ndio.h", "NDIOCVER", 0x80046e07}, +{"net/nit_if.h", "NIOCSFLAGS", 0x80047004}, +{"net/nit_if.h", "NIOCSSNAP", 0x80047006}, +{"net/nit_buf.h", "NIOCSCHUNK", 0x80047009}, +{"sun/sqz.h", "SQZSET", 0x80047101}, +{"sys/sockio.h", "SIOCSHIWAT", 0x80047300}, +{"sys/sockio.h", "SIOCSLOWAT", 0x80047302}, +{"sys/sockio.h", "SIOCSPGRP", 0x80047308}, +{"sys/ttold.h", "TIOCSETD", 0x80047401}, +{"sys/ttold.h", "TIOCMODS", 0x80047404}, +{"sbusdev/gtreg.h", "FB_FCSFREE", 0x80047406}, +{"sbusdev/gtreg.h", "FB_SETDIAGMODE", 0x80047408}, +{"sbusdev/gtreg.h", "FB_SETWPART", 0x80047409}, +{"sbusdev/gtreg.h", "FB_SETMONITOR", 0x8004740b}, +{"sys/ttold.h", "TIOCFLUSH", 0x80047410}, +{"sbusdev/gtreg.h", "FB_LOADKMCB", 0x80047411}, +{"sbusdev/gtreg.h", "FB_SETCLUTPART", 0x80047417}, +{"sbusdev/gtreg.h", "FB_LIGHTPENENABLE", 0x80047419}, +{"sys/ttycom.h", "TIOCTCNTL", 0x80047420}, +{"sys/ttycom.h", "TIOCSIGNAL", 0x80047421}, +{"sys/ttold.h", "TIOCSETX", 0x80047422}, +{"sys/ttycom.h", "TIOCSSOFTCAR", 0x80047465}, +{"sys/ttycom.h", "TIOCUCNTL", 0x80047466}, +{"sys/ttycom.h", "TIOCREMOTE", 0x80047469}, +{"sys/ttycom.h", "TIOCMBIC", 0x8004746b}, +{"sys/ttycom.h", "TIOCMBIS", 0x8004746c}, +{"sys/ttycom.h", "TIOCMSET", 0x8004746d}, +{"sys/ttycom.h", "TIOCPKT", 0x80047470}, +{"sys/ttycom.h", "TIOCSPGRP", 0x80047476}, +{"sys/ttold.h", "TIOCLSET", 0x8004747d}, +{"sys/ttold.h", "TIOCLBIC", 0x8004747e}, +{"sys/ttold.h", "TIOCLBIS", 0x8004747f}, +{"sys/ttycom.h", "TIOCSETPGRP", 0x80047482}, +{"sundev/vuid_event.h", "VUIDSFORMAT", 0x80047601}, +{"sys/vcmd.h", "VSETSTATE", 0x80047601}, +{"sundev/vuid_event.h", "VUIDSADDR", 0x80047603}, +{"scsi/targets/srdef.h", "CDROMPLAYMSF", 0x8006630c}, +{"sundev/srreg.h", "CDROMPLAYMSF", 0x8006630c}, +{"sun/dkio.h", "DKIOCSTYPE", 0x8006647d}, +{"sys/ttold.h", "TIOCSETP", 0x80067409}, +{"sys/ttold.h", "TIOCSETN", 0x8006740a}, +{"sys/ttold.h", "TIOCSETC", 0x80067411}, +{"sys/ttold.h", "TIOCSLTC", 0x80067475}, +{"sun/isdnio.h", "ISDN_SET_LOOPBACK", 0x8008410e}, +{"sun/isdnio.h", "ISDN_RESET_LOOPBACK", 0x8008410f}, +{"sundev/lightpenreg.h", "LIGHTPEN_CALIBRATE", 0x80084c01}, +{"sun/tvio.h", "TVIOSPOS", 0x8008581c}, +{"sun/dkio.h", "DKIOCSPART", 0x80086405}, +{"sun/dkio.h", "FDKSETSEARCH", 0x8008646b}, +{"sunwindow/win_ioctl.h", "WINSETLINK", 0x80086701}, +{"sunwindow/win_ioctl.h", "WINSETRECT", 0x8008670b}, +{"sunwindow/win_ioctl.h", "WINSETSAVEDRECT", 0x8008670c}, +{"sunwindow/win_ioctl.h", "WINPARTIALREPAIR", 0x8008672b}, +{"sunwindow/win_ioctl.h", "WINSETEVENTTIMEOUT", 0x8008673b}, +{"sunwindow/win_ioctl.h", "WINDBLSET", 0x8008674b}, +{"sunwindow/win_ioctl.h", "WINSETPLAYINTR", 0x800867cc}, +{"sys/mtio.h", "MTIOCTOP", 0x80086d01}, +{"net/nit_buf.h", "NIOCSTIME", 0x80087006}, +{"sbusdev/gtreg.h", "FB_VMBACK", 0x80087415}, +{"sbusdev/gtreg.h", "FB_VMUNBACK", 0x80087416}, +{"sbusdev/gtreg.h", "FB_SETLIGHTPENPARAM", 0x8008741a}, +{"sbusdev/gtreg.h", "FB_SETGAMMA", 0x8008741f}, +{"sys/ttycom.h", "TIOCSSIZE", 0x80087425}, +{"sys/ttold.h", "_O_TIOCSSIZE", 0x80087467}, +{"sys/ttycom.h", "TIOCSWINSZ", 0x80087467}, +{"sun/isdnio.h", "ISDN_SET_PARAM", 0x800c4110}, +{"sun/fbio.h", "FBIO_WID_FREE", 0x800c461f}, +{"sun/fbio.h", "FBIO_WID_PUT", 0x800c4620}, +{"sun/fbio.h", "FBIO_WID_GET", 0x800c4621}, +{"sundev/lightpenreg.h", "LIGHTPEN_FILTER", 0x800c4c02}, +{"sundev/fdreg.h", "V_FORMAT", 0x800c5605}, +{"sundev/srreg.h", "CDROMREADMODE2", 0x800c636e}, +{"sundev/srreg.h", "CDROMREADMODE1", 0x800c636f}, +{"sunwindow/win_ioctl.h", "WINSETCURSOR", 0x800c6707}, +{"sunwindow/win_ioctl.h", "WINSETFOCUSEVENT", 0x800c6746}, +{"sunwindow/win_ioctl.h", "WINSETSWALLOWEVENT", 0x800c6748}, +{"sundev/msio.h", "MSIOSETPARMS", 0x800c6d03}, +{"sbusdev/gtreg.h", "FB_CLUTFREE", 0x800c7402}, +{"sbusdev/gtreg.h", "FB_VMCTL", 0x800c741e}, +{"pixrect/cg8var.h", "PIPIO_S_EMULATION_MODE", 0x800e5804}, +{"sunwindow/win_ioctl.h", "WINSCREENPOSITIONS", 0x8010672b}, +{"sundev/kbio.h", "KIOCSETKEY", 0x80106b01}, +{"sun/ndio.h", "NDIOCETHER", 0x80106e08}, +{"sys/termio.h", "TCSETA", 0x80125402}, +{"termio.h", "TCSETA", 0x80125402}, +{"sys/termio.h", "TCSETAW", 0x80125403}, +{"termio.h", "TCSETAW", 0x80125403}, +{"sys/termio.h", "TCSETAF", 0x80125404}, +{"termio.h", "TCSETAF", 0x80125404}, +{"sun/fbio.h", "FBIOPUTCMAP", 0x80144603}, +{"sun/fbio.h", "FBIOGETCMAP", 0x80144604}, +{"sunwindow/win_ioctl.h", "WINSETAVAILPLANEGROUPS", 0x80146741}, +{"sunwindow/win_ioctl.h", "WINSETSYNCPT", 0x801467cd}, +{"sundev/kbio.h", "KIOCSKEY", 0x80146b0c}, +{"sun/fbio.h", "FBIODBLSINFO", 0x80184613}, +{"sun/gpio.h", "GP1IO_PUT_INFO", 0x80184700}, +{"sun/dkio.h", "DKIOCSCMD", 0x80186477}, +{"sunwindow/win_ioctl.h", "WINSETINPUTDEV", 0x80186732}, +{"sun/ndio.h", "NDIOCUSER", 0x80186e03}, +{"sun/fbio.h", "FBIOPUTCMAPI", 0x801c4629}, +{"sun/fbio.h", "FBIOGETCMAPI", 0x801c462a}, +{"sun/dkio.h", "FDKIOSCHAR", 0x801c6471}, +{"sbusdev/gtreg.h", "FB_CLUTPOST", 0x801c7404}, +{"sbusdev/bpp_io.h", "BPPIOC_SETPARMS", 0x80206201}, +{"sys/sockio.h", "SIOCSIFADDR", 0x8020690c}, +{"sys/sockio.h", "SIOCSIFDSTADDR", 0x8020690e}, +{"sys/sockio.h", "SIOCSIFFLAGS", 0x80206910}, +{"sys/sockio.h", "SIOCSIFMEM", 0x80206912}, +{"sys/sockio.h", "SIOCSIFMTU", 0x80206915}, +{"sys/sockio.h", "SIOCSIFBRDADDR", 0x80206918}, +{"sys/sockio.h", "SIOCSIFNETMASK", 0x8020691a}, +{"sys/sockio.h", "SIOCSIFMETRIC", 0x8020691c}, +{"sys/sockio.h", "SIOCUPPER", 0x80206928}, +{"sys/sockio.h", "SIOCLOWER", 0x80206929}, +{"sys/sockio.h", "SIOCSETSYNC", 0x8020692c}, +{"sys/sockio.h", "SIOCADDMULTI", 0x80206931}, +{"sys/sockio.h", "SIOCDELMULTI", 0x80206932}, +{"sys/sockio.h", "SIOCFDRESET", 0x80206933}, +{"sys/sockio.h", "SIOCFDSLEEP", 0x80206934}, +{"sys/sockio.h", "SIOCLDNSTRTFW", 0x80206936}, +{"sys/sockio.h", "SIOCGETFDSTAT", 0x80206937}, +{"sys/sockio.h", "SIOCFDNMIINT", 0x80206938}, +{"sys/sockio.h", "SIOCFDEXUSER", 0x80206939}, +{"sys/sockio.h", "SIOCFDGNETMAP", 0x8020693a}, +{"sys/sockio.h", "SIOCFDGIOCTL", 0x8020693b}, +{"net/nit_if.h", "NIOCBIND", 0x80207003}, +{"sbusdev/gtreg.h", "FB_GT_SETVERSION", 0x80207428}, +{"sys/stropts.h", "I_FDINSERT", 0x80245310}, +{"stropts.h", "I_FDINSERT", 0x80245310}, +{"termios.h", "TCSETS", 0x80245409}, +{"sys/termios.h", "TCSETS", 0x80245409}, +{"termios.h", "TCSETSW", 0x8024540a}, +{"sys/termios.h", "TCSETSW", 0x8024540a}, +{"termios.h", "TCSETSF", 0x8024540b}, +{"sys/termios.h", "TCSETSF", 0x8024540b}, +{"sys/sockio.h", "SIOCSARP", 0x8024691e}, +{"sys/sockio.h", "SIOCDARP", 0x80246920}, +{"sys/sockio.h", "SIOCSNIT", 0x80247000}, +{"sun/dkio.h", "DKIOCSGEOM", 0x80266403}, +{"sun/fbio.h", "FBIOSATTR", 0x80284605}, +{"sun/fbio.h", "FBIOSCURSOR", 0x802c4618}, +{"sunwindow/win_ioctl.h", "WINSETLOCATOR", 0x80306730}, +{"sunwindow/win_ioctl.h", "WINSETCPCURSOR", 0x80306796}, +{"sbusdev/audio_79C30.h", "AUDIOSETREG", 0x80306902}, +{"sys/sockio.h", "SIOCADDRT", 0x8030720a}, +{"sys/sockio.h", "SIOCDELRT", 0x8030720b}, +{"sunwindow/win_ioctl.h", "WINSETKBDMASK", 0x80346736}, +{"sunwindow/win_ioctl.h", "WINSETPICKMASK", 0x80346737}, +{"sun/dkio.h", "FDKSETDRIVECHAR", 0x8038646d}, +{"sun/tvio.h", "TVIOSVIDEOCAL", 0x80405832}, +{"sun/tvio.h", "TVIONVWRITE", 0x80405834}, +{"sun/dkio.h", "DKIOCSAPART", 0x8040647b}, +{"sunwindow/win_ioctl.h", "WINSETSCALING", 0x80406727}, +{"net/nit_pf.h", "NIOCSETF", 0x80527002}, +{"pixrect/gp1var.h", "GP1IO_SATTR", 0x80584765}, +{"sunwindow/win_ioctl.h", "WINSETINPUTMASK", 0x806c6714}, +{"sunwindow/win_ioctl.h", "WINSCREENNEW", 0x80706728}, +{"sunwindow/win_ioctl.h", "WINSETKBD", 0x8070672e}, +{"sunwindow/win_ioctl.h", "WINSETMS", 0x8070672f},
diff --git a/strace-4.5.20/sunos4/ioctlent.sh b/strace-4.5.20/sunos4/ioctlent.sh new file mode 100755 index 0000000..6ae0294 --- /dev/null +++ b/strace-4.5.20/sunos4/ioctlent.sh
@@ -0,0 +1,124 @@ +#!/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$ + +if [ $# -ne 1 ] +then + echo "usage: $0 include-directory" >&2 + exit 1 +fi + +bad_defines='WINGETVALIDVALUES' +( + cd $1 + find . -name '*.h' -print | sed 's/^\.\///' | + xargs egrep '^[ ]*#[ ]*define[ ][ ]*[A-Z_][A-Za-z0-9_]*[ ][ ]*_IO[RW]?\(' /dev/null | + sed 's/\(.*\):#[ ]*define[ ]*\([A-Z_][A-Za-z0-9_]*\)[ ]*\(_IO[^)]*)\)[ ]*\(.*\)/ { "\1", "\2", \2 }, \4/' | + sort -u +) >ioctlent.tmp +echo "\ +#include <sys/types.h> +#define KERNEL +#include <stdio.h> +#include <strings.h> +#include <fcntl.h> +#include <sys/types.h> +#include <sys/time.h> +#include <sys/ioctl.h> +#include <sys/socket.h> +#include <sys/des.h> +#include <sys/mtio.h> +#include <sys/stropts.h> +#include <sys/stream.h> +#include <sys/vcmd.h> + +#include <net/if.h> +#include <net/if_arp.h> +#include <net/route.h> +#include <net/nit.h> +#include <net/nit_if.h> +#include <net/nit_pf.h> +#include <net/nit_buf.h> +#include <net/packetfilt.h> +#include <netinet/in.h> +#include <netinet/in_systm.h> +#include <netinet/in_var.h> +#include <netinet/ip.h> +#include <netinet/ip_icmp.h> +#include <netinet/if_ether.h> + +#include <scsi/impl/uscsi.h> +#define sprintf scsi_sprintf +#include <scsi/scsi.h> +#undef sprintf +#include <scsi/targets/srdef.h> +#include <scsi/targets/stdef.h> +#if 0 +#include <scsi/targets/sddef.h> +#endif + +#include <sun/audioio.h> +#include <sun/fbio.h> +#include <sun/gpio.h> +#include <sun/ndio.h> +#include <sun/tvio.h> +#include <sun/mem.h> +#include <sun/sqz.h> +#include <sun/vddrv.h> +#include <sun/isdnio.h> + +#include <machine/reg.h> + +#include <sundev/kbio.h> +#include <sundev/msio.h> +#include <sundev/fdreg.h> +#include <sundev/ppreg.h> +#include <sundev/openpromio.h> +#include <sundev/lightpenreg.h> + +#include <sunwindow/window_hs.h> +#include <sunwindow/win_enum.h> +#include <sunwindow/win_ioctl.h> + +#include <sbusdev/audiovar.h> +#define AMD_CHIP +#include <sbusdev/audio_79C30.h> +#include <sbusdev/bpp_io.h> +#include <sbusdev/gtreg.h> + +#include <sys/termio.h> +" +echo "struct ioctlent ioctlent[] = {" +egrep -v "$bad_defines" ioctlent.tmp | awk ' +{ + print "#ifdef " $4 + print + print "#endif" +} +' +echo "};" +rm -f ioctlent.tmp
diff --git a/strace-4.5.20/sunos4/signalent.h b/strace-4.5.20/sunos4/signalent.h new file mode 100644 index 0000000..e059b5d --- /dev/null +++ b/strace-4.5.20/sunos4/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-4.5.20/sunos4/syscall.h b/strace-4.5.20/sunos4/syscall.h new file mode 100644 index 0000000..98b7e51 --- /dev/null +++ b/strace-4.5.20/sunos4/syscall.h
@@ -0,0 +1,174 @@ +/* + * 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$ + */ +#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_exit(),sys_execv(),sys_execve(),sys_wait4(); +int sys_getuid(),sys_setreuid(),sys_getgid(),sys_getgroups(),sys_setregid(),sys_setgroups(); +int sys_getpgrp(),sys_setpgrp(); +int sys_sys_setsid(), sys_setpgid(); +int sys_uname(); + +/* 1.2 memory management */ +int sys_brk(),sys_sbrk(),sys_sstk(); +int sys_getpagesize(),sys_mmap(),sys_mctl(),sys_munmap(),sys_mprotect(),sys_mincore(); +int sys_omsync(),sys_omadvise(); + +/* 1.3 signals */ +int sys_sigvec(),sys_sigblock(),sys_sigsetmask(),sys_sigpause(),sys_sigstack(),sys_sigcleanup(); +int sys_kill(), sys_killpg(), sys_sigpending(); + +/* 1.4 timing and statistics */ +int sys_gettimeofday(),sys_settimeofday(); +int sys_adjtime(); +int sys_getitimer(),sys_setitimer(); + +/* 1.5 descriptors */ +int sys_getdtablesize(),sys_dup(),sys_dup2(),sys_close(); +int sys_select(),sys_getdopt(),sys_setdopt(),sys_fcntl(),sys_flock(); + +/* 1.6 resource controls */ +int sys_getpriority(),sys_setpriority(),sys_getrusage(),sys_getrlimit(),sys_setrlimit(); +int sys_oldquota(), sys_quotactl(); +int sys_rtschedule(); + +/* 1.7 system operation support */ +int sys_mount(),sys_unmount(),sys_swapon(); +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(), sys_getdents(); +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_truncate(),sys_ftruncate(),sys_access(),sys_fsync(); +int sys_statfs(),sys_fstatfs(); + +/* 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_umask(); /* XXX */ + +/* 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_pathconf(); /* posix */ +int sys_fpathconf(); /* posix */ +int sys_sysconf(); /* posix */ + +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 */
diff --git a/strace-4.5.20/sunos4/syscallent.h b/strace-4.5.20/sunos4/syscallent.h new file mode 100644 index 0000000..66c2048 --- /dev/null +++ b/strace-4.5.20/sunos4/syscallent.h
@@ -0,0 +1,241 @@ +/* + * 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$ + */ + + { 1, 0, sys_indir, "indir" }, /* 0 */ + { 1, TP, sys_exit, "_exit" }, /* 1 */ + { 0, TP, sys_fork, "fork" }, /* 2 */ + { 3, TD, sys_read, "read" }, /* 3 */ + { 3, TD, sys_write, "write" }, /* 4 */ + { 3, TD|TF, sys_open, "open" }, /* 5 */ + { 1, TD, sys_close, "close" }, /* 6 */ + { 4, TP, sys_wait4, "wait4" }, /* 7 */ + { 2, TD|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 */ + { 0, 0, sys_otime, "otime" }, /* 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 */ + { 2, TF, sys_stat, "stat" }, /* 18 */ + { 3, TD, sys_lseek, "lseek" }, /* 19 */ + { 0, 0, sys_getpid, "getpid" }, /* 20 */ + { 0, 0, sys_nosys, "nosys" }, /* 21 */ + { 1, TF, sys_umount, "umount" }, /* 22 */ + { 1, 0, sys_osetuid, "osetuid" }, /* 23 */ + { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 1, 0, sys_ostime, "ostime" }, /* 25 */ + { 5, 0, sys_ptrace, "ptrace" }, /* 26 */ + { 1, 0, sys_oalarm, "oalarm" }, /* 27 */ + { 2, 0, sys_ofstat, "ofstat" }, /* 28 */ + { 0, 0, sys_opause, "opause" }, /* 29 */ + { 2, TF, sys_outime, "outime" }, /* 30 */ + { 0, 0, sys_nosys, "nosys" }, /* 31 */ + { 0, 0, sys_nosys, "nosys" }, /* 32 */ + { 2, TF, sys_access, "access" }, /* 33 */ + { 1, 0, sys_onice, "onice" }, /* 34 */ + { 1, 0, sys_oftime, "oftime" }, /* 35 */ + { 0, 0, sys_sync, "sync" }, /* 36 */ + { 2, TS, sys_kill, "kill" }, /* 37 */ + { 2, TF, sys_stat, "stat" }, /* 38 */ + { 2, 0, sys_osetpgrp, "osetpgrp" }, /* 39 */ + { 2, TF, sys_lstat, "lstat" }, /* 40 */ + { 2, TD, sys_dup, "dup" }, /* 41 */ + { 0, TD, sys_pipe, "pipe" }, /* 42 */ + { 1, 0, sys_otimes, "otimes" }, /* 43 */ + { 4, 0, sys_profil, "profil" }, /* 44 */ + { 0, 0, sys_nosys, "nosys" }, /* 45 */ + { 1, 0, sys_osetgid, "osetgid" }, /* 46 */ + { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 2, 0, sys_ossig, "ossig" }, /* 48 */ + { 0, 0, sys_nosys, "nosys" }, /* 49 */ + { 0, 0, sys_nosys, "nosys" }, /* 50 */ + { 1, 0, sys_sysacct, "sysacct" }, /* 51 */ + { 0, 0, sys_nosys, "nosys" }, /* 52 */ + { 4, 0, sys_mctl, "mctl" }, /* 53 */ + { 3, TD, sys_ioctl, "ioctl" }, /* 54 */ + { 2, 0, sys_reboot, "reboot" }, /* 55 */ + { 3, TP, sys_owait3, "owait3" }, /* 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, TD, sys_fstat, "fstat" }, /* 62 */ + { 0, 0, sys_nosys, "nosys" }, /* 63 */ + { 1, 0, sys_getpagesize, "getpagesize" }, /* 64 */ + { 3, 0, sys_omsync, "omsync" }, /* 65 */ + { 0, TP, sys_vfork, "vfork" }, /* 66 */ + { 0, TD, sys_read, "read" }, /* 67 */ + { 0, TD, sys_write, "write" }, /* 68 */ + { 1, 0, sys_sbrk, "sbrk" }, /* 69 */ + { 1, 0, sys_sstk, "sstk" }, /* 70 */ + { 6, 0, sys_mmap, "mmap" }, /* 71 */ + { 1, 0, sys_ovadvise, "ovadvise" }, /* 72 */ + { 2, 0, sys_munmap, "munmap" }, /* 73 */ + { 3, 0, sys_mprotect, "mprotect" }, /* 74 */ + { 3, 0, sys_omadvise, "omadvise" }, /* 75 */ + { 1, 0, sys_vhangup, "vhangup" }, /* 76 */ + { 2, 0, sys_ovlimit, "ovlimit" }, /* 77 */ + { 3, 0, sys_mincore, "mincore" }, /* 78 */ + { 2, 0, sys_getgroups, "getgroups" }, /* 79 */ + { 2, 0, sys_setgroups, "setgroups" }, /* 80 */ + { 1, 0, sys_getpgrp, "getpgrp" }, /* 81 */ + { 2, 0, sys_setpgrp, "setpgrp" }, /* 82 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 83 */ + { 0, TP, sys_owait, "owait" }, /* 84 */ + { 1, TF, sys_swapon, "swapon" }, /* 85 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 86 */ + { 2, 0, sys_gethostname, "gethostname" }, /* 87 */ + { 2, 0, sys_sethostname, "sethostname" }, /* 88 */ + { 0, 0, sys_getdtablesize, "getdtablesize" }, /* 89 */ + { 2, TD, sys_dup2, "dup2" }, /* 90 */ + { 2, 0, sys_getdopt, "getdopt" }, /* 91 */ + { 3, TD, sys_fcntl, "fcntl" }, /* 92 */ + { 5, TD, sys_select, "select" }, /* 93 */ + { 2, 0, sys_setdopt, "setdopt" }, /* 94 */ + { 1, TD, 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 */ + { 4, TN, sys_send, "send" }, /* 101 */ + { 4, TN, sys_recv, "recv" }, /* 102 */ + { 0, 0, sys_nosys, "nosys" }, /* 103 */ + { 3, TN, sys_bind, "bind" }, /* 104 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 105 */ + { 2, TN, sys_listen, "listen" }, /* 106 */ + { 2, 0, sys_ovtimes, "ovtimes" }, /* 107 */ + { 3, TS, sys_sigvec, "sigvec" }, /* 108 */ + { 1, TS, sys_sigblock, "sigblock" }, /* 109 */ + { 1, TS, sys_sigsetmask, "sigsetmask" }, /* 110 */ + { 1, TS, sys_sigpause, "sigpause" }, /* 111 */ + { 2, TS, sys_sigstack, "sigstack" }, /* 112 */ + { 3, TN, sys_recvmsg, "recvmsg" }, /* 113 */ + { 3, TN, sys_sendmsg, "sendmsg" }, /* 114 */ + { 3, 0, sys_vtrace, "vtrace" }, /* 115 */ + { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 116 */ + { 2, 0, sys_getrusage, "getrusage" }, /* 117 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 118 */ + { 0, 0, sys_nosys, "nosys" }, /* 119 */ + { 3, TD, sys_readv, "readv" }, /* 120 */ + { 3, TD, sys_writev, "writev" }, /* 121 */ + { 2, 0, sys_settimeofday, "settimeofday" }, /* 122 */ + { 3, TD, sys_fchown, "fchown" }, /* 123 */ + { 2, TD, 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, TD, sys_ftruncate, "ftruncate" }, /* 130 */ + { 2, TD, sys_flock, "flock" }, /* 131 */ + { 0, 0, sys_nosys, "nosys" }, /* 132 */ + { 6, TN, sys_sendto, "sendto" }, /* 133 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 134 */ + { 5, TN, sys_socketpair, "socketpair" }, /* 135 */ + { 2, TF, sys_mkdir, "mkdir" }, /* 136 */ + { 1, TF, sys_rmdir, "rmdir" }, /* 137 */ + { 2, TF, sys_utimes, "utimes" }, /* 138 */ + { 0, TS, sys_sigcleanup, "sigcleanup" }, /* 139 */ + { 2, 0, sys_adjtime, "adjtime" }, /* 140 */ + { 3, TN, sys_getpeername, "getpeername" }, /* 141 */ + { 2, 0, sys_gethostid, "gethostid" }, /* 142 */ + { 0, 0, sys_nosys, "nosys" }, /* 143 */ + { 2, 0, sys_getrlimit, "getrlimit" }, /* 144 */ + { 2, 0, sys_setrlimit, "setrlimit" }, /* 145 */ + { 2, TS, sys_killpg, "killpg" }, /* 146 */ + { 0, 0, sys_nosys, "nosys" }, /* 147 */ + { 0, 0, sys_oldquota, "oldquota" }, /* 148 */ + { 0, 0, sys_oldquota, "oldquota" }, /* 149 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 150 */ + { 4, TN, sys_getmsg, "getmsg" }, /* 151 */ + { 4, TN, sys_putmsg, "putmsg" }, /* 152 */ + { 3, TN, sys_poll, "poll" }, /* 153 */ + { 0, 0, sys_nosys, "nosys" }, /* 154 */ + { 1, 0, sys_nfs_svc, "nfs_svc" }, /* 155 */ + { 4, 0, sys_getdirentries, "getdirentries" }, /* 156 */ + { 2, TF, sys_statfs, "statfs" }, /* 157 */ + { 2, TD, sys_fstatfs, "fstatfs" }, /* 158 */ + { 1, TF, sys_unmount, "unmount" }, /* 159 */ + { 0, 0, sys_async_daemon, "async_daemon" }, /* 160 */ + { 2, 0, sys_nfs_getfh, "nfs_getfh" }, /* 161 */ + { 2, 0, sys_getdomainname, "getdomainname" }, /* 162 */ + { 2, 0, sys_setdomainname, "setdomainname" }, /* 163 */ + { 5, 0, sys_rtschedule, "rtschedule" }, /* 164 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 165 */ + { 2, 0, sys_exportfs, "exportfs" }, /* 166 */ + { 4, TF, sys_mount, "mount" }, /* 167 */ + { 2, 0, sys_ustat, "ustat" }, /* 168 */ + { 5, TI, sys_semsys, "semsys" }, /* 169 */ + { 6, TI, sys_msgsys, "msgsys" }, /* 170 */ + { 4, TI, sys_shmsys, "shmsys" }, /* 171 */ + { 4, 0, sys_auditsys, "auditsys" }, /* 172 */ + { 5, 0, sys_rfssys, "rfssys" }, /* 173 */ + { 3, TD, sys_getdents, "getdents" }, /* 174 */ + { 1, 0, sys_sys_setsid, "sys_setsid" }, /* 175 */ + { 1, TD, sys_fchdir, "fchdir" }, /* 176 */ + { 1, 0, sys_fchroot, "fchroot" }, /* 177 */ + { 2, 0, sys_vpixsys, "vpixsys" }, /* 178 */ + { 6, 0, sys_aioread, "aioread" }, /* 179 */ + { 6, 0, sys_aiowrite, "aiowrite" }, /* 180 */ + { 1, 0, sys_aiowait, "aiowait" }, /* 181 */ + { 1, 0, sys_aiocancel, "aiocancel" }, /* 182 */ + { 1, TS, sys_sigpending, "sigpending" }, /* 183 */ + { 0, 0, sys_errsys, "errsys" }, /* 184 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 185 */ + { 2, TF, sys_pathconf, "pathconf" }, /* 186 */ + { 2, 0, sys_fpathconf, "fpathconf" }, /* 187 */ + { 1, 0, sys_sysconf, "sysconf" }, /* 188 */ + { 1, 0, sys_uname, "uname" }, /* 189 */ + { 0, 0, sys_nosys, "nosys" }, /* 190 */ + { 0, 0, sys_nosys, "nosys" }, /* 191 */ + { 0, 0, sys_nosys, "nosys" }, /* 192 */ + { 0, 0, sys_nosys, "nosys" }, /* 193 */ + { 0, 0, sys_nosys, "nosys" }, /* 194 */ + { 0, 0, sys_nosys, "nosys" }, /* 195 */ + { 0, 0, sys_nosys, "nosys" }, /* 196 */ + { 0, 0, sys_nosys, "nosys" }, /* 197 */ + { 0, 0, sys_nosys, "nosys" }, /* 198 */ + { 0, 0, sys_nosys, "nosys" }, /* 199 */ + { 4, TI, sys_semctl, "semctl" }, /* 200 */ + { 4, TI, sys_semget, "semget" }, /* 201 */ + { 4, TI, sys_semop, "semop" }, /* 202 */ + { 5, TI, sys_msgget, "msgget" }, /* 203 */ + { 5, TI, sys_msgctl, "msgctl" }, /* 204 */ + { 5, TI, sys_msgrcv, "msgrcv" }, /* 205 */ + { 5, TI, sys_msgsnd, "msgsnd" }, /* 206 */ + { 3, TI, sys_shmat, "shmat" }, /* 207 */ + { 3, TI, sys_shmctl, "shmctl" }, /* 208 */ + { 3, TI, sys_shmdt, "shmdt" }, /* 209 */ + { 3, TI, sys_shmget, "shmget" }, /* 210 */
diff --git a/strace-4.5.20/svr4/dummy.h b/strace-4.5.20/svr4/dummy.h new file mode 100644 index 0000000..da7166d --- /dev/null +++ b/strace-4.5.20/svr4/dummy.h
@@ -0,0 +1,399 @@ +/* + * 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$ + */ + +/* still unfinished */ + +#define sys_sysmp printargs +#define sys_sginap printargs +#define sys_sgikopt printargs +#define sys_sysmips printargs +#define sys_sigreturn printargs +#define sys_recvmsg printargs +#define sys_sendmsg printargs +#define sys_nfssvc printargs +#define sys_getfh printargs +#define sys_async_daemon printargs +#define sys_exportfs printargs +#define sys_BSD_getime printargs +#define sys_sproc printargs +#define sys_procblk printargs +#define sys_sprocsp printargs +#define sys_msync printargs +#define sys_madvise printargs +#define sys_pagelock printargs +#define sys_quotactl printargs +#define sys_cacheflush printargs +#define sys_cachectl printargs +#define sys_nuname printargs +#define sys_sigpoll printargs +#define sys_swapctl printargs +#define sys_sigstack printargs +#define sys_sigsendset printargs +#define sys_priocntl printargs +#define sys_ksigqueue printargs +#define sys_lwp_sema_wait printargs +#define sys_lwp_sema_trywait printargs +#define sys_syscall printargs +#define sys_clocal printargs +#define sys_syssun printargs +#define sys_sysi86 printargs +#define sys_sysmachine printargs +#define sys_plock printargs +#define sys_pathconf printargs +#define sys_sigtimedwait printargs +#define sys_ulimit printargs +#define sys_ptrace printargs +#define sys_stty printargs +#define sys_lwp_info printargs +#define sys_priocntlsys printargs +#define sys_hrtsys printargs +#define sys_xenix printargs +#define sys_statfs printargs +#define sys_fstatfs printargs +#define sys_statvfs printargs +#define sys_fstatvfs printargs +#define sys_sigsendsys printargs +#define sys_gtty printargs +#define sys_vtrace printargs +#define sys_fpathconf printargs +#define sys_evsys printargs +#define sys_acct printargs +#define sys_exec printargs +#define sys_lwp_sema_post printargs +#define sys_nfssys printargs +#define sys_sigaltstack printargs +#define sys_uadmin printargs +#define sys_umount printargs +#define sys_modctl printargs +#define sys_acancel printargs +#define sys_async printargs +#define sys_evtrapret printargs +#define sys_lwp_create printargs +#define sys_lwp_exit printargs +#define sys_lwp_suspend printargs +#define sys_lwp_continue printargs +#define sys_lwp_kill printargs +#define sys_lwp_self printargs +#define sys_lwp_setprivate printargs +#define sys_lwp_getprivate printargs +#define sys_lwp_wait printargs +#define sys_lwp_mutex_unlock printargs +#define sys_lwp_mutex_lock printargs +#define sys_lwp_cond_wait printargs +#define sys_lwp_cond_signal printargs +#define sys_lwp_cond_broadcast printargs +#define sys_inst_sync printargs +#define sys_auditsys printargs +#define sys_processor_bind printargs +#define sys_processor_info printargs +#define sys_p_online printargs +#define sys_sigqueue printargs +#define sys_clock_gettime printargs +#define sys_clock_settime printargs +#define sys_clock_getres printargs +#define sys_nanosleep printargs +#define sys_timer_create printargs +#define sys_timer_delete printargs +#define sys_timer_settime printargs +#define sys_timer_gettime printargs +#define sys_timer_getoverrun printargs +#define sys_msgctl printargs +#define sys_msgget printargs +#define sys_msgrcv printargs +#define sys_msgsnd printargs +#define sys_shmat printargs +#define sys_shmctl printargs +#define sys_shmdt printargs +#define sys_shmget printargs +#define sys_semctl printargs +#define sys_semget printargs +#define sys_semop printargs +#define sys_olduname printargs +#define sys_ustat printargs +#define sys_fusers printargs +#define sys_sysfs1 printargs +#define sys_sysfs2 printargs +#define sys_sysfs3 printargs +#define sys_keyctl printargs +#define sys_secsys printargs +#define sys_filepriv printargs +#define sys_devstat printargs +#define sys_fdevstat printargs +#define sys_flvlfile printargs +#define sys_lvlfile printargs +#define sys_lvlequal printargs +#define sys_lvlproc printargs +#define sys_lvlipc printargs +#define sys_auditevt printargs +#define sys_auditctl printargs +#define sys_auditdmp printargs +#define sys_auditlog printargs +#define sys_auditbuf printargs +#define sys_lvldom printargs +#define sys_lvlvfs printargs +#define sys_mkmld printargs +#define sys_mldmode printargs +#define sys_secadvise printargs +#define sys_online printargs +#define sys_lwpinfo printargs +#define sys_lwpprivate printargs +#define sys_processor_exbind printargs +#define sys_prepblock printargs +#define sys_block printargs +#define sys_rdblock printargs +#define sys_unblock printargs +#define sys_cancelblock printargs +#define sys_lwpkill printargs +#define sys_modload printargs +#define sys_moduload printargs +#define sys_modpath printargs +#define sys_modstat printargs +#define sys_modadm printargs +#define sys_lwpsuspend printargs +#define sys_lwpcontinue printargs +#define sys_priocntllst printargs +#define sys_lwp_sema_trywait printargs +#define sys_xsetsockaddr printargs +#define sys_dshmsys printargs +#define sys_invlpg printargs +#define sys_migrate printargs +#define sys_kill3 printargs +#define sys_xbindresvport printargs +#define sys_lwp_sema_trywait printargs +#define sys_tsolsys printargs +#ifndef HAVE_SYS_ACL_H +#define sys_acl printargs +#define sys_facl printargs +#define sys_aclipc printargs +#endif +#define sys_install_utrap printargs +#define sys_signotify printargs +#define sys_schedctl printargs +#define sys_pset printargs +#define sys_resolvepath printargs +#define sys_signotifywait printargs +#define sys_lwp_sigredirect printargs +#define sys_lwp_alarm printargs +#define sys_rpcsys printargs +#define sys_sockconfig printargs +#define sys_ntp_gettime printargs +#define sys_ntp_adjtime printargs + +/* like another call */ +#define sys_lchown sys_chown +#define sys_setuid sys_close +#define sys_seteuid sys_close +#define sys_setgid sys_close +#define sys_setegid sys_close +#define sys_vhangup sys_close +#define sys_fdsync sys_close +#define sys_setreuid sys_dup2 +#define sys_setregid sys_dup2 +#define sys_sigfillset sys_sigpending +#define sys_vfork sys_fork +#define sys_ksigaction sys_sigaction +#define sys_BSDgetpgrp sys_getpgrp +#define sys_BSDsetpgrp sys_setpgrp +#define sys_waitsys sys_waitid +#define sys_sigset sys_signal +#define sys_sigrelse sys_sighold +#define sys_sigignore sys_sighold +#define sys_sigpause sys_sighold +#define sys_sleep sys_alarm +#define sys_fork1 sys_fork +#define sys_forkall sys_fork +#define sys_memcntl sys_mctl +#if UNIXWARE > 2 +#define sys_rfork1 sys_rfork +#define sys_rforkall sys_rfork +#ifndef HAVE_SYS_NSCSYS_H +#define sys_ssisys printargs +#endif +#endif + +/* aio */ +#define sys_aionotify printargs +#define sys_aioinit printargs +#define sys_aiostart printargs +#define sys_aiolio printargs +#define sys_aiosuspend printargs +#define sys_aioerror printargs +#define sys_aioliowait printargs +#define sys_aioaread printargs +#define sys_aioawrite printargs +#define sys_aiolio64 printargs +#define sys_aiosuspend64 printargs +#define sys_aioerror64 printargs +#define sys_aioliowait64 printargs +#define sys_aioaread64 printargs +#define sys_aioaread64 printargs +#define sys_aioawrite64 printargs +#define sys_aiocancel64 printargs +#define sys_aiofsync printargs + +/* the various 64-bit file stuff */ +#if !_LFS64_LARGEFILE +/* we've implemented these */ +#define sys_getdents64 printargs +#define sys_mmap64 printargs +#define sys_stat64 printargs +#define sys_lstat64 printargs +#define sys_fstat64 printargs +#define sys_setrlimit64 printargs +#define sys_getrlimit64 printargs +#define sys_pread64 printargs +#define sys_pwrite64 printargs +#define sys_ftruncate64 printargs +#define sys_truncate64 printargs +#define sys_lseek64 printargs +#endif + +/* unimplemented 64-bit stuff */ +#define sys_statvfs64 printargs +#define sys_fstatvfs64 printargs + +/* like another call */ +#define sys_creat64 sys_creat +#define sys_open64 sys_open +#define sys_llseek sys_lseek64 + +/* printargs does the right thing */ +#define sys_sync printargs +#define sys_profil printargs +#define sys_yield printargs +#define sys_pause printargs +#define sys_sethostid printargs + +/* subfunction entry points */ +#define sys_pgrpsys printargs +#define sys_sigcall printargs +#define sys_msgsys printargs +#define sys_shmsys printargs +#define sys_semsys printargs +#define sys_utssys printargs +#define sys_sysfs printargs +#define sys_spcall printargs +#define sys_context printargs +#define sys_door printargs +#define sys_kaio printargs + +#if DONE +#define sys_sigwait printargs +#define sys_mount printargs +#define sys_sysinfo printargs +#define sys_sysconfig printargs +#define sys_getpmsg printargs +#define sys_putpmsg printargs +#define sys_pread printargs +#define sys_pwrite printargs +#define sys_readv printargs +#define sys_writev printargs +#define sys_wait printargs +#define sys_waitid printargs +#define sys_sigsuspend printargs +#define sys_getpgrp printargs +#define sys_setpgrp printargs +#define sys_getsid printargs +#define sys_setsid printargs +#define sys_getpgid printargs +#define sys_setpgid printargs +#define sys_getcontext printargs +#define sys_setcontext printargs +#define sys_stime printargs +#define sys_time printargs +#define sys_nice printargs +#define sys_times printargs +#define sys_alarm printargs +#define sys_xstat printargs +#define sys_fxstat printargs +#define sys_lxstat printargs +#define sys_xmknod printargs +#define sys_exit printargs +#define sys_fork printargs +#define sys_read printargs +#define sys_write printargs +#define sys_open printargs +#define sys_close 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_brk printargs +#define sys_stat printargs +#define sys_lseek printargs +#define sys_getpid printargs +#define sys_getuid printargs +#define sys_fstat printargs +#define sys_utime printargs +#define sys_access printargs +#define sys_kill printargs +#define sys_dup printargs +#define sys_pipe printargs +#define sys_getgid printargs +#define sys_ioctl printargs +#define sys_umask printargs +#define sys_chroot printargs +#define sys_fcntl printargs +#define sys_rmdir printargs +#define sys_mkdir printargs +#define sys_getdents printargs +#define sys_getmsg printargs +#define sys_putmsg printargs +#define sys_poll printargs +#define sys_lstat printargs +#define sys_symlink printargs +#define sys_readlink printargs +#define sys_setgroups printargs +#define sys_getgroups printargs +#define sys_fchmod printargs +#define sys_fchown printargs +#define sys_sigprocmask printargs +#define sys_sigaction printargs +#define sys_sigpending printargs +#define sys_mincore printargs +#define sys_mmap printargs +#define sys_mprotect printargs +#define sys_munmap printargs +#define sys_vfork printargs +#define sys_fchdir printargs +#define sys_setrlimit printargs +#define sys_getrlimit printargs +#define sys_rename printargs +#define sys_uname printargs +#define sys_adjtime printargs +#define sys_fchroot printargs +#define sys_utimes printargs +#define sys_gettimeofday printargs +#define sys_getitimer printargs +#define sys_setitimer printargs +#define sys_settimeofday printargs +#endif
diff --git a/strace-4.5.20/svr4/errnoent.h b/strace-4.5.20/svr4/errnoent.h new file mode 100644 index 0000000..418e2db --- /dev/null +++ b/strace-4.5.20/svr4/errnoent.h
@@ -0,0 +1,152 @@ + "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 */ + "ECANCELED", /* 47 */ + "ENOTSUP", /* 48 */ + "ERRNO_49", /* 49 */ + "EBADE", /* 50 */ + "EBADR", /* 51 */ + "EXFULL", /* 52 */ + "ENOANO", /* 53 */ + "EBADRQC", /* 54 */ + "EBADSLT", /* 55 */ + "EDEADLOCK", /* 56 */ + "EBFONT", /* 57 */ + "ERRNO_58", /* 58 */ + "ERRNO_59", /* 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 */ + "ERRNO_73", /* 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 */ + "ERRNO_135", /* 135 */ + "ERRNO_136", /* 136 */ + "ERRNO_137", /* 137 */ + "ERRNO_138", /* 138 */ + "ERRNO_139", /* 139 */ + "ERRNO_140", /* 140 */ + "ERRNO_141", /* 141 */ + "ERRNO_142", /* 142 */ + "ESHUTDOWN", /* 143 */ + "ETOOMANYREFS", /* 144 */ + "ETIMEDOUT", /* 145 */ + "ECONNREFUSED", /* 146 */ + "EHOSTDOWN", /* 147 */ + "EHOSTUNREACH", /* 148 */ + "EALREADY", /* 149 */ + "EINPROGRESS", /* 150 */ + "ESTALE", /* 151 */
diff --git a/strace-4.5.20/svr4/ioctlent.h b/strace-4.5.20/svr4/ioctlent.h new file mode 100644 index 0000000..7119c87 --- /dev/null +++ b/strace-4.5.20/svr4/ioctlent.h
@@ -0,0 +1,429 @@ +{"sys/dkio.h", "DKIOCGGEOM", 0x401}, +{"sys/dkio.h", "DKIOCSGEOM", 0x402}, +{"sys/dkio.h", "DKIOCINFO", 0x403}, +{"sys/dkio.h", "DKIOCSAPART", 0x404}, +{"sys/dkio.h", "DKIOCGAPART", 0x405}, +{"sys/dkio.h", "DKIOCEJECT", 0x406}, +{"sys/dkio.h", "DKIOCLOCK", 0x407}, +{"sys/dkio.h", "DKIOCUNLOCK", 0x408}, +{"sys/dkio.h", "DKIOCGVTOC", 0x40b}, +{"sys/dkio.h", "DKIOCSVTOC", 0x40c}, +{"sys/dkio.h", "DKIOCSTATE", 0x40d}, +{"sys/fdio.h", "FDIOGCHAR", 0x433}, +{"sys/fdio.h", "FDIOSCHAR", 0x434}, +{"sys/fdio.h", "FDEJECT", 0x435}, +{"sys/fdio.h", "FDGETCHANGE", 0x436}, +{"sys/fdio.h", "FDGETDRIVECHAR", 0x437}, +{"sys/fdio.h", "FDSETDRIVECHAR", 0x438}, +{"sys/fdio.h", "FDGETSEARCH", 0x439}, +{"sys/fdio.h", "FDSETSEARCH", 0x43a}, +{"sys/fdio.h", "FDIOCMD", 0x43b}, +{"sys/fdio.h", "FDRAW", 0x446}, +{"sys/fdio.h", "FDDEFGEOCHAR", 0x456}, +{"sys/hdio.h", "HDKIOCSTYPE", 0x465}, +{"sys/hdio.h", "HDKIOCGTYPE", 0x466}, +{"sys/hdio.h", "HDKIOCSBAD", 0x467}, +{"sys/hdio.h", "HDKIOCGBAD", 0x468}, +{"sys/hdio.h", "HDKIOCSCMD", 0x469}, +{"sys/hdio.h", "HDKIOCGDIAG", 0x46a}, +{"sys/cdio.h", "CDROMPAUSE", 0x497}, +{"sys/cdio.h", "CDROMRESUME", 0x498}, +{"sys/cdio.h", "CDROMPLAYMSF", 0x499}, +{"sys/cdio.h", "CDROMPLAYTRKIND", 0x49a}, +{"sys/cdio.h", "CDROMREADTOCHDR", 0x49b}, +{"sys/cdio.h", "CDROMREADTOCENTRY", 0x49c}, +{"sys/cdio.h", "CDROMSTOP", 0x49d}, +{"sys/cdio.h", "CDROMSTART", 0x49e}, +{"sys/cdio.h", "CDROMEJECT", 0x49f}, +{"sys/cdio.h", "CDROMVOLCTRL", 0x4a0}, +{"sys/cdio.h", "CDROMSUBCHNL", 0x4a1}, +{"sys/cdio.h", "CDROMREADMODE2", 0x4a2}, +{"sys/cdio.h", "CDROMREADMODE1", 0x4a3}, +{"sys/cdio.h", "CDROMREADOFFSET", 0x4a4}, +{"sys/cdio.h", "CDROMGBLKMODE", 0x4a5}, +{"sys/cdio.h", "CDROMSBLKMODE", 0x4a6}, +{"sys/cdio.h", "CDROMCDDA", 0x4a7}, +{"sys/cdio.h", "CDROMCDXA", 0x4a8}, +{"sys/cdio.h", "CDROMSUBCODE", 0x4a9}, +{"sys/cdio.h", "CDROMGDRVSPEED", 0x4aa}, +{"sys/cdio.h", "CDROMSDRVSPEED", 0x4ab}, +{"sys/scsi/impl/uscsi.h", "USCSICMD", 0x4c9}, +{"sys/bufmod.h", "SBIOCSTIME", 0x4201}, +{"sys/bufmod.h", "SBIOCGTIME", 0x4202}, +{"sys/bufmod.h", "SBIOCCTIME", 0x4203}, +{"sys/bufmod.h", "SBIOCSCHUNK", 0x4204}, +{"sys/bufmod.h", "SBIOCGCHUNK", 0x4205}, +{"sys/bufmod.h", "SBIOCSSNAP", 0x4206}, +{"sys/bufmod.h", "SBIOCGSNAP", 0x4207}, +{"sys/bufmod.h", "SBIOCSFLAGS", 0x4208}, +{"sys/bufmod.h", "SBIOCGFLAGS", 0x4209}, +{"sys/termios.h", "LDOPEN", 0x4400}, +{"sys/termios.h", "LDCLOSE", 0x4401}, +{"sys/dlpi.h", "DLIOCRAW", 0x4401}, +{"sys/sad.h", "SAD_SAP", 0x4401}, +{"sys/termios.h", "LDCHG", 0x4402}, +{"sys/sad.h", "SAD_GAP", 0x4402}, +{"sys/sad.h", "SAD_VML", 0x4403}, +{"sys/termios.h", "LDGETT", 0x4408}, +{"sys/termios.h", "LDSETT", 0x4409}, +{"sys/dlpi.h", "DL_IOC_HDR_INFO", 0x440a}, +{"sys/termios.h", "LDSMAP", 0x446e}, +{"sys/termios.h", "LDGMAP", 0x446f}, +{"sys/termios.h", "LDNMAP", 0x4470}, +{"sys/termios.h", "LDEMAP", 0x4471}, +{"sys/termios.h", "LDDMAP", 0x4472}, +{"sys/fbio.h", "FBIOGTYPE", 0x4600}, +{"sys/fbio.h", "FBIOGINFO", 0x4602}, +{"sys/fbio.h", "FBIOPUTCMAP", 0x4603}, +{"sys/fbio.h", "FBIOGETCMAP", 0x4604}, +{"sys/fbio.h", "FBIOSATTR", 0x4605}, +{"sys/fbio.h", "FBIOGATTR", 0x4606}, +{"sys/fbio.h", "FBIOSVIDEO", 0x4607}, +{"sys/fbio.h", "FBIOGVIDEO", 0x4608}, +{"sys/fbio.h", "FBIOVERTICAL", 0x4609}, +{"sys/fbio.h", "GRABPAGEALLOC", 0x460a}, +{"sys/fbio.h", "GRABPAGEFREE", 0x460b}, +{"sys/fbio.h", "GRABATTACH", 0x460c}, +{"sys/fbio.h", "FBIOGPLNGRP", 0x460d}, +{"sys/fbio.h", "FBIOGCMSIZE", 0x460e}, +{"sys/fbio.h", "FBIOSCMSIZE", 0x460f}, +{"sys/fbio.h", "FBIOSCMS", 0x4610}, +{"sys/fbio.h", "FBIOAVAILPLNGRP", 0x4611}, +{"sys/fbio.h", "FBIODBLGINFO", 0x4612}, +{"sys/fbio.h", "FBIODBLSINFO", 0x4613}, +{"sys/fbio.h", "FBIOSWINFD", 0x4614}, +{"sys/fbio.h", "FBIOSAVWINFD", 0x4615}, +{"sys/fbio.h", "FBIORESWINFD", 0x4616}, +{"sys/fbio.h", "FBIOSRWINFD", 0x4617}, +{"sys/visual_io.h", "VIS_SETCURSOR", 0x4618}, +{"sys/fbio.h", "FBIOSCURSOR", 0x4618}, +{"sys/fbio.h", "FBIOGCURSOR", 0x4619}, +{"sys/visual_io.h", "VIS_GETCURSOR", 0x4619}, +{"sys/fbio.h", "FBIOSCURPOS", 0x461a}, +{"sys/visual_io.h", "VIS_MOVECURSOR", 0x461a}, +{"sys/fbio.h", "FBIOGCURPOS", 0x461b}, +{"sys/visual_io.h", "VIS_GETCURSORPOS", 0x461b}, +{"sys/fbio.h", "FBIOGCURMAX", 0x461c}, +{"sys/fbio.h", "GRABLOCKINFO", 0x461d}, +{"sys/fbio.h", "FBIO_WID_ALLOC", 0x461e}, +{"sys/fbio.h", "FBIO_WID_FREE", 0x461f}, +{"sys/fbio.h", "FBIO_WID_PUT", 0x4620}, +{"sys/fbio.h", "FBIO_WID_GET", 0x4621}, +{"sys/fbio.h", "FBIO_DEVID", 0x4622}, +{"sys/fbio.h", "FBIO_U_RST", 0x4623}, +{"sys/fbio.h", "FBIO_FULLSCREEN_ELIMINATION_GROUPS", 0x4624}, +{"sys/fbio.h", "FBIO_WID_DBL_SET", 0x4625}, +{"sys/fbio.h", "FBIOVRTOFFSET", 0x4626}, +{"sys/fbio.h", "FBIOGXINFO", 0x4627}, +{"sys/fbio.h", "FBIOMONINFO", 0x4628}, +{"sys/fbio.h", "FBIOPUTCMAPI", 0x4629}, +{"sys/fbio.h", "FBIOGETCMAPI", 0x462a}, +{"sys/fbio.h", "FBIO_ASSIGNWID", 0x462b}, +{"sys/fbio.h", "FBIO_STEREO", 0x462c}, +{"sys/gpio.h", "GP1IO_PUT_INFO", 0x4700}, +{"sys/gpio.h", "GP1IO_GET_STATIC_BLOCK", 0x4701}, +{"sys/gpio.h", "GP1IO_FREE_STATIC_BLOCK", 0x4702}, +{"sys/gpio.h", "GP1IO_GET_GBUFFER_STATE", 0x4703}, +{"sys/gpio.h", "GP1IO_CHK_GP", 0x4704}, +{"sys/gpio.h", "GP1IO_GET_RESTART_COUNT", 0x4705}, +{"sys/gpio.h", "GP1IO_REDIRECT_DEVFB", 0x4706}, +{"sys/gpio.h", "GP1IO_GET_REQDEV", 0x4707}, +{"sys/gpio.h", "GP1IO_GET_TRUMINORDEV", 0x4708}, +{"sys/gpio.h", "GP1IO_CHK_FOR_GBUFFER", 0x4709}, +{"sys/gpio.h", "GP1IO_SET_USING_GBUFFER", 0x470a}, +{"sys/gpio.h", "GP1IO_INFO_STATIC_BLOCK", 0x470b}, +{"sys/sockmod.h", "O_SI_GETUDATA", 0x4965}, +{"sys/sockmod.h", "SI_SHUTDOWN", 0x4966}, +{"sys/sockmod.h", "SI_LISTEN", 0x4967}, +{"sys/sockmod.h", "SI_SETMYNAME", 0x4968}, +{"sys/sockmod.h", "SI_SETPEERNAME", 0x4969}, +{"sys/sockmod.h", "SI_GETINTRANSIT", 0x496a}, +{"sys/sockmod.h", "SI_SOCKPARAMS", 0x496d}, +{"sys/sockmod.h", "SI_GETUDATA", 0x496e}, +{"sys/strlog.h", "I_TRCLOG", 0x4c01}, +{"sys/strlog.h", "I_ERRLOG", 0x4c02}, +{"sys/strlog.h", "I_CONSLOG", 0x4c03}, +{"sys/cg14io.h", "MDI_RESET", 0x4d01}, +{"sys/cg14io.h", "MDI_GET_CFGINFO", 0x4d02}, +{"sys/cg14io.h", "MDI_SET_PIXELMODE", 0x4d03}, +{"sys/cg14io.h", "MDI_SET_COUNTERS", 0x4d04}, +{"sys/cg14io.h", "MDI_SET_PPR", 0x4d05}, +{"sys/cg14io.h", "MDI_VRT_CNTL", 0x4d06}, +{"sys/cg14io.h", "MDI_SET_CLUT", 0x4d07}, +{"sys/cg14io.h", "MDI_GET_CLUT", 0x4d08}, +{"sys/cg14io.h", "MDI_SET_XLUT", 0x4d09}, +{"sys/cg14io.h", "MDI_GET_XLUT", 0x4d0a}, +{"sys/cg14io.h", "MDI_GAMMA_CORRECT", 0x4d0b}, +{"sys/cg14io.h", "MDI_SET_GAMMALUT", 0x4d0c}, +{"sys/cg14io.h", "MDI_GET_GAMMALUT", 0x4d0d}, +{"sys/cg14io.h", "MDI_SET_DEGAMMALUT", 0x4d0e}, +{"sys/cg14io.h", "MDI_GET_DEGAMMALUT", 0x4d0f}, +{"sys/cg14io.h", "MDI_GET_BUFFER_INFO", 0x4d10}, +{"sys/cg14io.h", "MDI_SET_CURSOR", 0x4d11}, +{"sys/cg14io.h", "MDI_GET_DIAGINFO", 0x4d12}, +{"sys/cg14io.h", "MDI_SET_RESOLUTION", 0x4d13}, +{"sys/cg14io.h", "SET_MONITOR_POWER", 0x4d14}, +{"sys/openpromio.h", "OPROMGETBOOTARGS", 0x4f0c}, +{"sys/pfmod.h", "PFIOCSETF", 0x5001}, +{"sys/stropts.h", "I_NREAD", 0x5301}, +{"sys/stropts.h", "I_PUSH", 0x5302}, +{"sys/stropts.h", "I_POP", 0x5303}, +{"sys/stropts.h", "I_LOOK", 0x5304}, +{"sys/stropts.h", "I_FLUSH", 0x5305}, +{"sys/stropts.h", "I_SRDOPT", 0x5306}, +{"sys/stropts.h", "I_GRDOPT", 0x5307}, +{"sys/stropts.h", "I_STR", 0x5308}, +{"sys/stropts.h", "I_SETSIG", 0x5309}, +{"sys/stropts.h", "I_GETSIG", 0x530a}, +{"sys/stropts.h", "I_FIND", 0x530b}, +{"sys/stropts.h", "I_LINK", 0x530c}, +{"sys/stropts.h", "I_UNLINK", 0x530d}, +{"sys/stropts.h", "I_RECVFD", 0x530e}, +{"sys/stropts.h", "I_PEEK", 0x530f}, +{"sys/stropts.h", "I_FDINSERT", 0x5310}, +{"sys/stropts.h", "I_SENDFD", 0x5311}, +{"sys/stropts.h", "I_SWROPT", 0x5313}, +{"sys/stropts.h", "I_GWROPT", 0x5314}, +{"sys/stropts.h", "I_LIST", 0x5315}, +{"sys/stropts.h", "I_PLINK", 0x5316}, +{"sys/stropts.h", "I_PUNLINK", 0x5317}, +{"sys/stropts.h", "I_SETEV", 0x5318}, +{"sys/stropts.h", "I_GETEV", 0x5319}, +{"sys/stropts.h", "I_STREV", 0x531a}, +{"sys/stropts.h", "I_UNSTREV", 0x531b}, +{"sys/stropts.h", "I_FLUSHBAND", 0x531c}, +{"sys/stropts.h", "I_CKBAND", 0x531d}, +{"sys/stropts.h", "I_GETBAND", 0x531e}, +{"sys/stropts.h", "I_ATMARK", 0x531f}, +{"sys/stropts.h", "I_SETCLTIME", 0x5320}, +{"sys/stropts.h", "I_GETCLTIME", 0x5321}, +{"sys/stropts.h", "I_CANPUT", 0x5322}, +{"sys/termios.h", "TCGETA", 0x5401}, +{"sys/termios.h", "TCSETA", 0x5402}, +{"sys/termios.h", "TCSETAW", 0x5403}, +{"sys/termios.h", "TCSETAF", 0x5404}, +{"sys/termios.h", "TCSBRK", 0x5405}, +{"sys/termios.h", "TCXONC", 0x5406}, +{"sys/termios.h", "TCFLSH", 0x5407}, +{"sys/termios.h", "TIOCKBON", 0x5408}, +{"sys/termios.h", "TIOCKBOF", 0x5409}, +{"sys/termios.h", "KBENABLED", 0x540a}, +{"sys/termios.h", "TCGETS", 0x540d}, +{"sys/termios.h", "TCSETS", 0x540e}, +{"sys/termios.h", "TCSANOW", 0x540e}, +{"sys/termios.h", "TCSADRAIN", 0x540f}, +{"sys/termios.h", "TCSETSW", 0x540f}, +{"sys/termios.h", "TCSAFLUSH", 0x5410}, +{"sys/termios.h", "TCSETSF", 0x5410}, +{"sys/termio.h", "TCDSET", 0x5420}, +{"sys/termios.h", "TCDSET", 0x5420}, +{"sys/termios.h", "RTS_TOG", 0x5421}, +{"sys/ttold.h", "TIOCSWINSZ", 0x5467}, +{"sys/termios.h", "TIOCSWINSZ", 0x5467}, +{"sys/ttold.h", "TIOCGWINSZ", 0x5468}, +{"sys/termios.h", "TIOCGWINSZ", 0x5468}, +{"sys/termios.h", "TIOCGSOFTCAR", 0x5469}, +{"sys/termios.h", "TIOCSSOFTCAR", 0x546a}, +{"sys/timod.h", "TI_GETINFO", 0x548c}, +{"sys/timod.h", "TI_OPTMGMT", 0x548d}, +{"sys/timod.h", "TI_BIND", 0x548e}, +{"sys/timod.h", "TI_UNBIND", 0x548f}, +{"sys/timod.h", "TI_GETMYNAME", 0x5490}, +{"sys/timod.h", "TI_GETPEERNAME", 0x5491}, +{"sys/timod.h", "TI_SETMYNAME", 0x5492}, +{"sys/timod.h", "TI_SETPEERNAME", 0x5493}, +{"sys/termiox.h", "TCGETX", 0x5801}, +{"sys/termiox.h", "TCSETX", 0x5802}, +{"sys/termiox.h", "TCSETXW", 0x5803}, +{"sys/termiox.h", "TCSETXF", 0x5804}, +{"sys/ioctl.h", "DIOCGETC", 0x6401}, +{"sys/ioctl.h", "DIOCGETB", 0x6402}, +{"sys/ioctl.h", "DIOCSETE", 0x6403}, +{"sys/termios.h", "DIOCGETP", 0x6408}, +{"sys/termios.h", "DIOCSETP", 0x6409}, +{"sys/jioctl.h", "JBOOT", 0x6a01}, +{"sys/jioctl.h", "JTERM", 0x6a02}, +{"sys/jioctl.h", "JMPX", 0x6a03}, +{"sys/jioctl.h", "JWINSIZE", 0x6a05}, +{"sys/jioctl.h", "JZOMBOOT", 0x6a07}, +{"sys/jioctl.h", "JAGENT", 0x6a09}, +{"sys/jioctl.h", "JTRUN", 0x6a0a}, +{"sys/jioctl.h", "JXTPROTO", 0x6a0b}, +{"sys/kbio.h", "KIOCTRANS", 0x6b00}, +{"sys/kbio.h", "KIOCSETKEY", 0x6b01}, +{"sys/kbio.h", "KIOCGETKEY", 0x6b02}, +{"sys/kbio.h", "KIOCGTRANS", 0x6b05}, +{"sys/kbio.h", "KIOCTRANSABLE", 0x6b06}, +{"sys/kbio.h", "KIOCGTRANSABLE", 0x6b07}, +{"sys/kbio.h", "KIOCCMD", 0x6b08}, +{"sys/kbio.h", "KIOCTYPE", 0x6b09}, +{"sys/kbio.h", "KIOCSDIRECT", 0x6b0a}, +{"sys/kbio.h", "KIOCGDIRECT", 0x6b0b}, +{"sys/kbio.h", "KIOCSKEY", 0x6b0c}, +{"sys/kbio.h", "KIOCGKEY", 0x6b0d}, +{"sys/kbio.h", "KIOCSLED", 0x6b0e}, +{"sys/kbio.h", "KIOCGLED", 0x6b0f}, +{"sys/kbio.h", "KIOCSCOMPAT", 0x6b10}, +{"sys/kbio.h", "KIOCGCOMPAT", 0x6b11}, +{"sys/kbio.h", "KIOCLAYOUT", 0x6b14}, +{"sys/ioctl.h", "LIOCGETP", 0x6c01}, +{"sys/ioctl.h", "LIOCSETP", 0x6c02}, +{"sys/ioctl.h", "LIOCGETS", 0x6c05}, +{"sys/ioctl.h", "LIOCSETS", 0x6c06}, +{"sys/mtio.h", "MTIOCTOP", 0x6d01}, +{"sys/msio.h", "MSIOGETPARMS", 0x6d01}, +{"sys/msio.h", "MSIOSETPARMS", 0x6d02}, +{"sys/mtio.h", "MTIOCGET", 0x6d02}, +{"sys/mtio.h", "MTIOCGETDRIVETYPE", 0x6d03}, +{"sys/procfs.h", "PIOCSTATUS", 0x7101}, +{"sys/procfs.h", "PIOCSTOP", 0x7102}, +{"sys/procfs.h", "PIOCWSTOP", 0x7103}, +{"sys/procfs.h", "PIOCRUN", 0x7104}, +{"sys/procfs.h", "PIOCGTRACE", 0x7105}, +{"sys/procfs.h", "PIOCSTRACE", 0x7106}, +{"sys/procfs.h", "PIOCSSIG", 0x7107}, +{"sys/procfs.h", "PIOCKILL", 0x7108}, +{"sys/procfs.h", "PIOCUNKILL", 0x7109}, +{"sys/procfs.h", "PIOCGHOLD", 0x710a}, +{"sys/procfs.h", "PIOCSHOLD", 0x710b}, +{"sys/procfs.h", "PIOCMAXSIG", 0x710c}, +{"sys/procfs.h", "PIOCACTION", 0x710d}, +{"sys/procfs.h", "PIOCGFAULT", 0x710e}, +{"sys/procfs.h", "PIOCSFAULT", 0x710f}, +{"sys/procfs.h", "PIOCCFAULT", 0x7110}, +{"sys/procfs.h", "PIOCGENTRY", 0x7111}, +{"sys/procfs.h", "PIOCSENTRY", 0x7112}, +{"sys/procfs.h", "PIOCGEXIT", 0x7113}, +{"sys/procfs.h", "PIOCSEXIT", 0x7114}, +{"sys/procfs.h", "PIOCSFORK", 0x7115}, +{"sys/procfs.h", "PIOCRFORK", 0x7116}, +{"sys/procfs.h", "PIOCSRLC", 0x7117}, +{"sys/procfs.h", "PIOCRRLC", 0x7118}, +{"sys/procfs.h", "PIOCGREG", 0x7119}, +{"sys/procfs.h", "PIOCSREG", 0x711a}, +{"sys/procfs.h", "PIOCGFPREG", 0x711b}, +{"sys/procfs.h", "PIOCSFPREG", 0x711c}, +{"sys/procfs.h", "PIOCNICE", 0x711d}, +{"sys/procfs.h", "PIOCPSINFO", 0x711e}, +{"sys/procfs.h", "PIOCNMAP", 0x711f}, +{"sys/procfs.h", "PIOCMAP", 0x7120}, +{"sys/procfs.h", "PIOCOPENM", 0x7121}, +{"sys/procfs.h", "PIOCCRED", 0x7122}, +{"sys/procfs.h", "PIOCGROUPS", 0x7123}, +{"sys/procfs.h", "PIOCGETPR", 0x7124}, +{"sys/procfs.h", "PIOCGETU", 0x7125}, +{"sys/procfs.h", "PIOCSET", 0x7126}, +{"sys/procfs.h", "PIOCRESET", 0x7127}, +{"sys/procfs.h", "PIOCNWATCH", 0x7128}, +{"sys/procfs.h", "PIOCGWATCH", 0x7129}, +{"sys/procfs.h", "PIOCSWATCH", 0x712a}, +{"sys/procfs.h", "PIOCUSAGE", 0x712b}, +{"sys/procfs.h", "PIOCOPENPD", 0x712c}, +{"sys/procfs.h", "PIOCLWPIDS", 0x712d}, +{"sys/procfs.h", "PIOCOPENLWP", 0x712e}, +{"sys/procfs.h", "PIOCLSTATUS", 0x712f}, +{"sys/procfs.h", "PIOCLUSAGE", 0x7130}, +{"sys/procfs.h", "PIOCNAUXV", 0x7131}, +{"sys/procfs.h", "PIOCAUXV", 0x7132}, +{"sys/procfs.h", "PIOCGWIN", 0x7165}, +{"sys/ttold.h", "TIOCGETD", 0x7400}, +{"sys/termios.h", "TIOCGETD", 0x7400}, +{"sys/termios.h", "TIOCSETD", 0x7401}, +{"sys/ttold.h", "TIOCSETD", 0x7401}, +{"sys/termios.h", "TIOCHPCL", 0x7402}, +{"sys/ttold.h", "TIOCHPCL", 0x7402}, +{"sys/ttold.h", "TIOCGETP", 0x7408}, +{"sys/termios.h", "TIOCGETP", 0x7408}, +{"sys/termios.h", "TIOCSETP", 0x7409}, +{"sys/ttold.h", "TIOCSETP", 0x7409}, +{"sys/ttold.h", "TIOCSETN", 0x740a}, +{"sys/termios.h", "TIOCSETN", 0x740a}, +{"sys/ttold.h", "TIOCEXCL", 0x740d}, +{"sys/termios.h", "TIOCEXCL", 0x740d}, +{"sys/ttold.h", "TIOCNXCL", 0x740e}, +{"sys/termios.h", "TIOCNXCL", 0x740e}, +{"sys/termios.h", "TIOCFLUSH", 0x7410}, +{"sys/ttold.h", "TIOCFLUSH", 0x7410}, +{"sys/termios.h", "TIOCSETC", 0x7411}, +{"sys/ttold.h", "TIOCSETC", 0x7411}, +{"sys/termios.h", "TIOCGETC", 0x7412}, +{"sys/ttold.h", "TIOCGETC", 0x7412}, +{"sys/termios.h", "TIOCGPGRP", 0x7414}, +{"sys/termios.h", "TIOCSPGRP", 0x7415}, +{"sys/termios.h", "TIOCGSID", 0x7416}, +{"sys/termios.h", "TIOCSTI", 0x7417}, +{"sys/termios.h", "TIOCSSID", 0x7418}, +{"sys/termios.h", "TIOCMSET", 0x741a}, +{"sys/termios.h", "TIOCMBIS", 0x741b}, +{"sys/termios.h", "TIOCMBIC", 0x741c}, +{"sys/termios.h", "TIOCMGET", 0x741d}, +{"sys/termios.h", "TIOCREMOTE", 0x741e}, +{"sys/ttold.h", "TIOCREMOTE", 0x741e}, +{"sys/termios.h", "TIOCSIGNAL", 0x741f}, +{"sys/termios.h", "TIOCSTART", 0x746e}, +{"sys/ttold.h", "TIOCSTART", 0x746e}, +{"sys/termios.h", "TIOCSTOP", 0x746f}, +{"sys/ttold.h", "TIOCSTOP", 0x746f}, +{"sys/ttold.h", "TIOCNOTTY", 0x7471}, +{"sys/termios.h", "TIOCNOTTY", 0x7471}, +{"sys/termios.h", "TIOCOUTQ", 0x7473}, +{"sys/ttold.h", "TIOCOUTQ", 0x7473}, +{"sys/termios.h", "TIOCGLTC", 0x7474}, +{"sys/ttold.h", "TIOCGLTC", 0x7474}, +{"sys/termios.h", "TIOCSLTC", 0x7475}, +{"sys/ttold.h", "TIOCSLTC", 0x7475}, +{"sys/termios.h", "TIOCCDTR", 0x7478}, +{"sys/ttold.h", "TIOCCDTR", 0x7478}, +{"sys/ttold.h", "TIOCSDTR", 0x7479}, +{"sys/termios.h", "TIOCSDTR", 0x7479}, +{"sys/termios.h", "TIOCCBRK", 0x747a}, +{"sys/ttold.h", "TIOCCBRK", 0x747a}, +{"sys/termios.h", "TIOCSBRK", 0x747b}, +{"sys/ttold.h", "TIOCSBRK", 0x747b}, +{"sys/termios.h", "TIOCLGET", 0x747c}, +{"sys/ttold.h", "TIOCLGET", 0x747c}, +{"sys/termios.h", "TIOCLSET", 0x747d}, +{"sys/ttold.h", "TIOCLSET", 0x747d}, +{"sys/ttold.h", "TIOCLBIC", 0x747e}, +{"sys/termios.h", "TIOCLBIC", 0x747e}, +{"sys/ttold.h", "TIOCLBIS", 0x747f}, +{"sys/termios.h", "TIOCLBIS", 0x747f}, +{"sys/vol.h", "VOLIOCMAP", 0x7601}, +{"sys/vuid_event.h", "VUIDSFORMAT", 0x7601}, +{"sys/vuid_event.h", "VUIDSFORMAT", 0x7601}, +{"sys/vuid_event.h", "VUIDGFORMAT", 0x7602}, +{"sys/vuid_event.h", "VUIDGFORMAT", 0x7602}, +{"sys/vol.h", "VOLIOCUNMAP", 0x7602}, +{"sys/vol.h", "VOLIOCEVENT", 0x7603}, +{"sys/vuid_event.h", "VUIDSADDR", 0x7603}, +{"sys/vuid_event.h", "VUIDSADDR", 0x7603}, +{"sys/vuid_event.h", "VUIDGADDR", 0x7604}, +{"sys/vuid_event.h", "VUIDGADDR", 0x7604}, +{"sys/vol.h", "VOLIOCEJECT", 0x7604}, +{"sys/vol.h", "VOLIOCCHECK", 0x7605}, +{"sys/vol.h", "VOLIOCINUSE", 0x7606}, +{"sys/vol.h", "VOLIOCDGATTR", 0x7607}, +{"sys/vol.h", "VOLIOCDSATTR", 0x7608}, +{"sys/vol.h", "VOLIOCDCHECK", 0x7609}, +{"sys/vol.h", "VOLIOCCANCEL", 0x760a}, +{"sys/vol.h", "VOLIOCINFO", 0x760b}, +{"sys/vol.h", "VOLIOCSATTR", 0x760c}, +{"sys/vol.h", "VOLIOCGATTR", 0x760d}, +{"sys/vol.h", "VOLIOCDINUSE", 0x760e}, +{"sys/vol.h", "VOLIOCDAEMON", 0x760f}, +{"sys/vol.h", "VOLIOCFLAGS", 0x7610}, +{"sys/vol.h", "VOLIOCEXTRA4", 0x7611}, +{"sys/vol.h", "VOLIOCEXTRA5", 0x7612}, +{"sys/vol.h", "VOLIOCEXTRA6", 0x7613}, +{"sys/vol.h", "VOLIOCEXTRA7", 0x7614}, +{"sys/ser_sync.h", "S_IOCGETMODE", 0x7a01}, +{"sys/ser_sync.h", "S_IOCSETMODE", 0x7a02}, +{"sys/ser_sync.h", "S_IOCGETSTATS", 0x7a03}, +{"sys/ser_sync.h", "S_IOCCLRSTATS", 0x7a04}, +{"sys/ser_sync.h", "S_IOCGETSPEED", 0x7a05}, +{"sys/ser_sync.h", "S_IOCGETMRU", 0x7a06}, +{"sys/ser_sync.h", "S_IOCSETMRU", 0x7a07}, +{"sys/ser_sync.h", "S_IOCGETMTU", 0x7a08}, +{"sys/ser_sync.h", "S_IOCSETMTU", 0x7a09}, +{"sys/ser_sync.h", "S_IOCGETMCTL", 0x7a0a}, +{"sys/tl.h", "TL_IOC_CREDOPT", 0x544c01},
diff --git a/strace-4.5.20/svr4/ioctlent.sh b/strace-4.5.20/svr4/ioctlent.sh new file mode 100755 index 0000000..ae9e36e --- /dev/null +++ b/strace-4.5.20/svr4/ioctlent.sh
@@ -0,0 +1,53 @@ +#!/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$ + +if [ $# -ne 1 ] +then + echo "usage: $0 include-directory" >&2 + exit 1 +fi + +bad_includes='cg[48]var\.h|sys/spad\.h' +bad_defines='cg[48]var\.h|READSLICE|I_E_RECVFD|FBIOGPIXRECT|JTIMO|TTYTYPE|TIOCCONS|TCL_LINK|TCL_UNLINK' + +( + cd $1 || exit + find sys -name '*.h' -print | + xargs grep '^[ ]*#[ ]*define[ ][ ]*[A-Z_][A-Za-z0-9_]*[ ][ ]*( *[A-Za-z_][A-Za-z0-9_]* *| *[0-9][0-9]* *)' /dev/null | + sed 's/\(.*\):#[ ]*define[ ]*\([A-Z_][A-Za-z0-9_]*\)[ ]*\(([^)]*)\)[ ]*\(.*\)/ { "\1", "\2", \2 }, \4 \/**\//' +) >ioctlent.tmp +cat ioctlent.tmp | + awk '{ print "#include <" substr($2, 2, length($2) - 3) ">" }' | + sort -u | + egrep -v "$bad_includes" +echo xyzzy +echo "struct ioctlent ioctlent[] = {" +egrep -v "$bad_defines" ioctlent.tmp | +awk '{ print "#ifdef " $4; print $0; print "#endif" }' +echo "};" +rm -f ioctlent.tmp
diff --git a/strace-4.5.20/svr4/signalent.h b/strace-4.5.20/svr4/signalent.h new file mode 100644 index 0000000..58869a5 --- /dev/null +++ b/strace-4.5.20/svr4/signalent.h
@@ -0,0 +1,36 @@ + "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 */ + "SIGWINCH", /* 20 */ + "SIGURG", /* 21 */ + "SIGPOLL", /* 22 */ + "SIGSTOP", /* 23 */ + "SIGTSTP", /* 24 */ + "SIGCONT", /* 25 */ + "SIGTTIN", /* 26 */ + "SIGTTOU", /* 27 */ + "SIGVTALRM", /* 28 */ + "SIGPROF", /* 29 */ + "SIGXCPU", /* 30 */ + "SIGXFSZ", /* 31 */ + "SIGWAITING", /* 32 */ + "SIGLWP", /* 33 */ + "SIGFREEZE", /* 34 */ + "SIGTHAW", /* 35 */
diff --git a/strace-4.5.20/svr4/syscall.h b/strace-4.5.20/svr4/syscall.h new file mode 100644 index 0000000..e0fba08 --- /dev/null +++ b/strace-4.5.20/svr4/syscall.h
@@ -0,0 +1,540 @@ +/* + * 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$ + */ + +#include "dummy.h" + +extern int sys_syscall(); +extern int sys_exit(); +extern int sys_fork(); +extern int sys_read(); +extern int sys_write(); +extern int sys_open(); +extern int sys_close(); +extern int sys_wait(); +extern int sys_creat(); +extern int sys_link(); +extern int sys_unlink(); +extern int sys_exec(); +extern int sys_chdir(); +extern int sys_time(); +extern int sys_settimeofday(); +extern int sys_mknod(); +extern int sys_chmod(); +extern int sys_chown(); +extern int sys_brk(); +extern int sys_stat(); +extern int sys_lseek(); +extern int sys_getpid(); +extern int sys_mount(); +extern int sys_umount(); +extern int sys_setuid(); +extern int sys_getuid(); +extern int sys_stime(); +extern int sys_ptrace(); +extern int sys_alarm(); +extern int sys_fstat(); +extern int sys_pause(); +extern int sys_utime(); +extern int sys_stty(); +extern int sys_gtty(); +extern int sys_access(); +extern int sys_nice(); +extern int sys_statfs(); +extern int sys_sync(); +extern int sys_kill(); +extern int sys_fstatfs(); +extern int sys_pgrpsys(); +extern int sys_setpgrp(); +extern int sys_xenix(); +extern int sys_syssgi(); +extern int sys_dup(); +extern int sys_pipe(); +extern int sys_times(); +extern int sys_profil(); +extern int sys_plock(); +extern int sys_setgid(); +extern int sys_getgid(); +extern int sys_sigcall(); +extern int sys_msgsys(); +extern int sys_syssun(); +extern int sys_sysi86(); +extern int sys_sysmips(); +extern int sys_sysmachine(); +extern int sys_acct(); +extern int sys_shmsys(); +extern int sys_semsys(); +extern int sys_ioctl(); +extern int sys_uadmin(); +extern int sys_utssys(); +extern int sys_fdsync(); +extern int sys_execve(); +extern int sys_umask(); +extern int sys_chroot(); +extern int sys_fcntl(); +extern int sys_ulimit(); +extern int sys_rmdir(); +extern int sys_mkdir(); +extern int sys_getdents(); +extern int sys_sysfs(); +extern int sys_getmsg(); +extern int sys_putmsg(); +extern int sys_poll(); +extern int sys_dup2(); +extern int sys_bind(); +extern int sys_listen(); +extern int sys_accept(); +extern int sys_connect(); +extern int sys_shutdown(); +extern int sys_recv(); +extern int sys_recvfrom(); +extern int sys_send(); +extern int sys_sendto(); +extern int sys_getpeername(); +extern int sys_getsockname(); +extern int sys_getsockopt(); +extern int sys_setsockopt(); +#ifdef MIPS +extern int sys_sigreturn(); +extern int sys_gethostid(); +extern int sys_recvmsg(); +extern int sys_select(); +extern int sys_sendmsg(); +extern int sys_sethostid(); +extern int sys_socket(); +extern int sys_listen(); +extern int sys_gethostname(); +extern int sys_sethostname(); +extern int sys_getdomainname(); +extern int sys_setdomainname(); +extern int sys_truncate(); +extern int sys_ftruncate(); +extern int sys_rename(); +extern int sys_symlink(); +extern int sys_readlink(); +extern int sys_nfssvc(); +extern int sys_getfh(); +extern int sys_async_daemon(); +extern int sys_exportfs(); +extern int sys_setregid(); +extern int sys_setreuid(); +extern int sys_getitimer(); +extern int sys_setitimer(); +extern int sys_adjtime(); +extern int sys_BSD_getime(); +extern int sys_sproc(); +extern int sys_prctl(); +extern int sys_procblk(); +extern int sys_sprocsp(); +extern int sys_mmap(); +extern int sys_munmap(); +extern int sys_mprotect(); +extern int sys_msync(); +extern int sys_madvise(); +extern int sys_pagelock(); +extern int sys_getpagesize(); +extern int sys_quotactl(); +extern int sys_BSDgetpgrp(); +extern int sys_BSDsetpgrp(); +extern int sys_vhangup(); +extern int sys_fsync(); +extern int sys_fchdir(); +extern int sys_getrlimit(); +extern int sys_setrlimit(); +extern int sys_cacheflush(); +extern int sys_cachectl(); +extern int sys_fchown(); +extern int sys_fchmod(); +extern int sys_socketpair(); +extern int sys_sysinfo(); +extern int sys_nuname(); +extern int sys_xstat(); +extern int sys_lxstat(); +extern int sys_fxstat(); +extern int sys_xmknod(); +extern int sys_ksigaction(); +extern int sys_sigpending(); +extern int sys_sigprocmask(); +extern int sys_sigsuspend(); +extern int sys_sigpoll(); +extern int sys_swapctl(); +extern int sys_getcontext(); +extern int sys_setcontext(); +extern int sys_waitsys(); +extern int sys_sigstack(); +extern int sys_sigaltstack(); +extern int sys_sigsendset(); +extern int sys_statvfs(); +extern int sys_fstatvfs(); +extern int sys_getpmsg(); +extern int sys_putpmsg(); +extern int sys_lchown(); +extern int sys_priocntl(); +extern int sys_ksigqueue(); +#else /* !MIPS */ +extern int sys_lstat(); +extern int sys_symlink(); +extern int sys_readlink(); +extern int sys_setgroups(); +extern int sys_getgroups(); +extern int sys_fchmod(); +extern int sys_fchown(); +extern int sys_sigprocmask(); +extern int sys_sigsuspend(); +extern int sys_sigaltstack(); +extern int sys_sigaction(); +extern int sys_spcall(); +extern int sys_context(); +extern int sys_evsys(); +extern int sys_evtrapret(); +extern int sys_statvfs(); +extern int sys_fstatvfs(); +extern int sys_nfssys(); +extern int sys_waitid(); +extern int sys_sigsendsys(); +extern int sys_hrtsys(); +extern int sys_acancel(); +extern int sys_async(); +extern int sys_priocntlsys(); +extern int sys_pathconf(); +extern int sys_mincore(); +extern int sys_mmap(); +extern int sys_mprotect(); +extern int sys_munmap(); +extern int sys_fpathconf(); +extern int sys_vfork(); +extern int sys_fchdir(); +extern int sys_readv(); +extern int sys_writev(); +extern int sys_xstat(); +extern int sys_lxstat(); +extern int sys_fxstat(); +extern int sys_xmknod(); +extern int sys_clocal(); +extern int sys_setrlimit(); +extern int sys_getrlimit(); +extern int sys_lchown(); +extern int sys_memcntl(); +extern int sys_getpmsg(); +extern int sys_putpmsg(); +extern int sys_rename(); +extern int sys_uname(); +extern int sys_setegid(); +extern int sys_sysconfig(); +extern int sys_adjtime(); +extern int sys_sysinfo(); +extern int sys_seteuid(); +extern int sys_vtrace(); +extern int sys_fork1(); +extern int sys_sigtimedwait(); +extern int sys_lwp_info(); +extern int sys_yield(); +extern int sys_lwp_sema_wait(); +extern int sys_lwp_sema_post(); +extern int sys_modctl(); +extern int sys_fchroot(); +extern int sys_utimes(); +extern int sys_vhangup(); +extern int sys_gettimeofday(); +extern int sys_getitimer(); +extern int sys_setitimer(); +extern int sys_lwp_create(); +extern int sys_lwp_exit(); +extern int sys_lwp_suspend(); +extern int sys_lwp_continue(); +extern int sys_lwp_kill(); +extern int sys_lwp_self(); +extern int sys_lwp_setprivate(); +extern int sys_lwp_getprivate(); +extern int sys_lwp_wait(); +extern int sys_lwp_mutex_unlock(); +extern int sys_lwp_mutex_lock(); +extern int sys_lwp_cond_wait(); +extern int sys_lwp_cond_signal(); +extern int sys_lwp_cond_broadcast(); +extern int sys_pread(); +extern int sys_pwrite(); +extern int sys_inst_sync(); +extern int sys_auditsys(); +extern int sys_processor_bind(); +extern int sys_processor_info(); +extern int sys_p_online(); +extern int sys_sigqueue(); +extern int sys_clock_gettime(); +extern int sys_clock_settime(); +extern int sys_clock_getres(); +extern int sys_timer_create(); +extern int sys_timer_delete(); +extern int sys_timer_settime(); +extern int sys_timer_gettime(); +extern int sys_timer_getoverrun(); +extern int sys_nanosleep(); +extern int sys_setreuid(); +extern int sys_setregid(); +#ifdef HAVE_SYS_ACL_H +extern int sys_acl(); +extern int sys_facl(); +extern int sys_aclipc(); +#endif +#ifdef HAVE_SYS_DOOR_H +extern int sys_door(); +#endif +#if UNIXWARE >= 2 +extern int sys_sigwait(); +extern int sys_truncate(); +extern int sys_ftruncate(); +extern int sys_getksym (); +extern int sys_procpriv(); +#endif +#if UNIXWARE >= 7 +extern int sys_lseek64 (); +extern int sys_truncate64 (); +extern int sys_ftruncate64 (); +extern int sys_xsocket (); +extern int sys_xsocketpair (); +extern int sys_xbind (); +extern int sys_xconnect (); +extern int sys_xlisten (); +extern int sys_xaccept (); +extern int sys_xrecvmsg (); +extern int sys_xsendmsg (); +extern int sys_xgetsockaddr (); +extern int sys_xsetsockaddr (); +extern int sys_xgetsockopt (); +extern int sys_xsetsockopt (); +extern int sys_xshutdown (); +extern int sys_rfork (); +extern int sys_ssisys (); +extern int sys_rexecve (); +#endif +#endif /* !MIPS */ + +#ifdef MIPS +#define SGI_KLUDGE 1 +#else +#define SGI_KLUDGE 0 +#endif + +/* sys_pgrpsys subcalls */ + +extern int sys_getpgrp(), sys_setpgrp(), sys_getsid(); +extern int sys_setsid(), sys_getpgid(), sys_setpgid(); + +#ifndef MIPS + +#define SYS_pgrpsys_subcall 300 + SGI_KLUDGE +#define SYS_getpgrp (SYS_pgrpsys_subcall + 0) +#define SYS_setpgrp (SYS_pgrpsys_subcall + 1) +#define SYS_getsid (SYS_pgrpsys_subcall + 2) +#define SYS_setsid (SYS_pgrpsys_subcall + 3) +#define SYS_getpgid (SYS_pgrpsys_subcall + 4) +#define SYS_setpgid (SYS_pgrpsys_subcall + 5) + +#define SYS_pgrpsys_nsubcalls 6 + +#endif /* !MIPS */ + +/* sys_sigcall subcalls */ + +#undef SYS_signal +#define SYS_sigcall 48 + +extern int sys_signal(), sys_sigset(), sys_sighold(); +extern int sys_sigrelse(), sys_sigignore(), sys_sigpause(); + +#ifndef MIPS + +#define SYS_sigcall_subcall 310 + SGI_KLUDGE +#define SYS_signal (SYS_sigcall_subcall + 0) +#define SYS_sigset (SYS_sigcall_subcall + 1) +#define SYS_sighold (SYS_sigcall_subcall + 2) +#define SYS_sigrelse (SYS_sigcall_subcall + 3) +#define SYS_sigignore (SYS_sigcall_subcall + 4) +#define SYS_sigpause (SYS_sigcall_subcall + 5) + +#define SYS_sigcall_nsubcalls 6 + +#endif /* !MIPS */ + +/* msgsys subcalls */ + +extern int sys_msgget(), sys_msgctl(), sys_msgrcv(), sys_msgsnd(); + +#define SYS_msgsys_subcall 320 + SGI_KLUDGE +#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) + +#define SYS_msgsys_nsubcalls 4 + +/* shmsys subcalls */ + +extern int sys_shmat(), sys_shmctl(), sys_shmdt(), sys_shmget(); + +#define SYS_shmsys_subcall 330 + SGI_KLUDGE +#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) + +#define SYS_shmsys_nsubcalls 4 + +/* semsys subcalls */ + +extern int sys_semctl(), sys_semget(), sys_semop(); + +#define SYS_semsys_subcall 340 + SGI_KLUDGE +#define SYS_semctl (SYS_semsys_subcall + 0) +#define SYS_semget (SYS_semsys_subcall + 1) +#define SYS_semop (SYS_semsys_subcall + 2) + +#define SYS_semsys_nsubcalls 3 + +/* utssys subcalls */ + +extern int sys_olduname(), sys_ustat(), sys_fusers(); + +#define SYS_utssys_subcall 350 + SGI_KLUDGE + +#define SYS_olduname (SYS_utssys_subcall + 0) + /* 1 is unused */ +#define SYS_ustat (SYS_utssys_subcall + 2) +#define SYS_fusers (SYS_utssys_subcall + 3) + +#define SYS_utssys_nsubcalls 4 + +/* sysfs subcalls */ + +extern int sys_sysfs1(), sys_sysfs2(), sys_sysfs3(); + +#define SYS_sysfs_subcall 360 + SGI_KLUDGE + /* 0 is unused */ +#define SYS_sysfs1 (SYS_sysfs_subcall + 1) +#define SYS_sysfs2 (SYS_sysfs_subcall + 2) +#define SYS_sysfs3 (SYS_sysfs_subcall + 3) + +#define SYS_sysfs_nsubcalls 4 + +/* sys_spcall subcalls */ + +#undef SYS_sigpending +#define SYS_spcall 99 + +extern int sys_sigpending(), sys_sigfillset(); + +#define SYS_spcall_subcall 370 + SGI_KLUDGE + /* 0 is unused */ +#define SYS_sigpending (SYS_spcall_subcall + 1) +#define SYS_sigfillset (SYS_spcall_subcall + 2) + +#define SYS_spcall_nsubcalls 3 + +/* sys_context subcalls */ + +extern int sys_getcontext(), sys_setcontext(); + +#ifndef MIPS + +#define SYS_context_subcall 380 + SGI_KLUDGE +#define SYS_getcontext (SYS_context_subcall + 0) +#define SYS_setcontext (SYS_context_subcall + 1) + +#define SYS_context_nsubcalls 2 + +#endif /* !MIPS */ + + +#ifdef HAVE_SYS_AIO_H +extern int sys_aioread(); +extern int sys_aiowrite(); +extern int sys_aiowait(); +extern int sys_aiocancel(); +#endif /* HAVE_SYS_AIO_H */ + +/* 64-bit file stuff */ + +#if _LFS64_LARGEFILE +extern int sys_getdents64(); +extern int sys_mmap64(); +extern int sys_stat64(); +extern int sys_lstat64(); +extern int sys_fstat64(); +extern int sys_setrlimit64(); +extern int sys_getrlimit64(); +extern int sys_pread64(); +extern int sys_pwrite64(); +extern int sys_lseek64(); +#endif + +/* solaris 2.6 stuff */ +extern int sys_so_socket(); +extern int sys_so_socketpair(); + +#ifdef HAVE_SYS_DOOR_H + +#define SYS_door_subcall 390 + SGI_KLUDGE +#define SYS_door_create (SYS_door_subcall + 0) +#define SYS_door_revoke (SYS_door_subcall + 1) +#define SYS_door_info (SYS_door_subcall + 2) +#define SYS_door_call (SYS_door_subcall + 3) +#define SYS_door_return (SYS_door_subcall + 4) +#define SYS_door_cred (SYS_door_subcall + 5) + +#define SYS_door_nsubcalls 6 + +#endif /* HAVE_SYS_DOOR_H */ + +#ifdef HAVE_SYS_AIO_H + +#define SYS_kaio_subcall 400 + SGI_KLUDGE +#define SYS_aioread (SYS_kaio_subcall + 0) +#define SYS_aiowrite (SYS_kaio_subcall + 1) +#define SYS_aiowait (SYS_kaio_subcall + 2) +#define SYS_aiocancel (SYS_kaio_subcall + 3) +#define SYS_aionotify (SYS_kaio_subcall + 4) +#define SYS_aioinit (SYS_kaio_subcall + 5) +#define SYS_aiostart (SYS_kaio_subcall + 6) +#define SYS_aiolio (SYS_kaio_subcall + 7) +#define SYS_aiosuspend (SYS_kaio_subcall + 8) +#define SYS_aioerror (SYS_kaio_subcall + 9) +#define SYS_aioliowait (SYS_kaio_subcall + 10) +#define SYS_aioaread (SYS_kaio_subcall + 11) +#define SYS_aioawrite (SYS_kaio_subcall + 12) +#define SYS_aiolio64 (SYS_kaio_subcall + 13) +#define SYS_aiosuspend64 (SYS_kaio_subcall + 14) +#define SYS_aioerror64 (SYS_kaio_subcall + 15) +#define SYS_aioliowait64 (SYS_kaio_subcall + 16) +#define SYS_aioaread64 (SYS_kaio_subcall + 17) +#define SYS_aioawrite64 (SYS_kaio_subcall + 18) +#define SYS_aiocancel64 (SYS_kaio_subcall + 19) +#define SYS_aiofsync (SYS_kaio_subcall + 20) + +#define SYS_kaio_nsubcalls 21 + +#endif /* HAVE_SYS_AIO_H */
diff --git a/strace-4.5.20/svr4/syscallent.h b/strace-4.5.20/svr4/syscallent.h new file mode 100644 index 0000000..d8e5a12 --- /dev/null +++ b/strace-4.5.20/svr4/syscallent.h
@@ -0,0 +1,827 @@ +/* + * 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$ + */ + +#ifdef MIPS + { -1, 0, printargs, "SYS_-1" }, /* -1 */ +#endif /* MIPS */ + { -1, 0, sys_syscall, "syscall" }, /* 0 */ + { -1, TP, sys_exit, "_exit" }, /* 1 */ + { -1, TP, sys_fork, "fork" }, /* 2 */ + { -1, TD, sys_read, "read" }, /* 3 */ + { -1, TD, sys_write, "write" }, /* 4 */ + { -1, TD|TF, sys_open, "open" }, /* 5 */ + { -1, TD, sys_close, "close" }, /* 6 */ + { -1, TP, sys_wait, "wait" }, /* 7 */ + { -1, TD|TF, sys_creat, "creat" }, /* 8 */ + { -1, TF, sys_link, "link" }, /* 9 */ + { -1, TF, sys_unlink, "unlink" }, /* 10 */ + { -1, TF|TP, sys_exec, "exec" }, /* 11 */ + { -1, TF, sys_chdir, "chdir" }, /* 12 */ + { -1, 0, sys_time, "time" }, /* 13 */ + { -1, TF, sys_mknod, "mknod" }, /* 14 */ + { -1, TF, sys_chmod, "chmod" }, /* 15 */ + { -1, TF, sys_chown, "chown" }, /* 16 */ + { -1, 0, sys_brk, "brk" }, /* 17 */ + { -1, TF, sys_stat, "stat" }, /* 18 */ + { -1, TD, sys_lseek, "lseek" }, /* 19 */ + { -1, 0, sys_getpid, "getpid" }, /* 20 */ + { -1, TF, sys_mount, "mount" }, /* 21 */ + { -1, TF, sys_umount, "umount" }, /* 22 */ + { -1, 0, sys_setuid, "setuid" }, /* 23 */ + { -1, 0, sys_getuid, "getuid" }, /* 24 */ + { -1, 0, sys_stime, "stime" }, /* 25 */ + { -1, 0, sys_ptrace, "ptrace" }, /* 26 */ + { -1, 0, sys_alarm, "alarm" }, /* 27 */ + { -1, TD, sys_fstat, "fstat" }, /* 28 */ + { -1, TS, sys_pause, "pause" }, /* 29 */ + { -1, TF, sys_utime, "utime" }, /* 30 */ + { -1, 0, sys_stty, "stty" }, /* 31 */ + { -1, 0, sys_gtty, "gtty" }, /* 32 */ + { -1, TF, sys_access, "access" }, /* 33 */ + { -1, 0, sys_nice, "nice" }, /* 34 */ + { -1, TF, sys_statfs, "statfs" }, /* 35 */ + { -1, 0, sys_sync, "sync" }, /* 36 */ + { -1, TS, sys_kill, "kill" }, /* 37 */ + { -1, TD, sys_fstatfs, "fstatfs" }, /* 38 */ +#ifdef MIPS + { -1, 0, sys_setpgrp, "setpgrp" }, /* 39 */ +#else /* !MIPS */ + { -1, 0, sys_pgrpsys, "pgrpsys" }, /* 39 */ +#endif /* !MIPS */ +#ifdef MIPS + { -1, 0, sys_syssgi, "syssgi" }, /* 40 */ +#else /* !MIPS */ + { -1, 0, sys_xenix, "xenix" }, /* 40 */ +#endif /* !MIPS */ + { -1, TD, sys_dup, "dup" }, /* 41 */ + { -1, TD, sys_pipe, "pipe" }, /* 42 */ + { -1, 0, sys_times, "times" }, /* 43 */ + { -1, 0, sys_profil, "profil" }, /* 44 */ + { -1, 0, sys_plock, "plock" }, /* 45 */ + { -1, 0, sys_setgid, "setgid" }, /* 46 */ + { -1, 0, sys_getgid, "getgid" }, /* 47 */ + { -1, 0, sys_sigcall, "sigcall" }, /* 48 */ + { -1, TI, sys_msgsys, "msgsys" }, /* 49 */ +#ifdef SPARC + { -1, 0, sys_syssun, "syssun" }, /* 50 */ +#else /* !SPARC */ +#ifdef I386 + { -1, 0, sys_sysi86, "sysi86" }, /* 50 */ +#else /* !I386 */ +#ifdef MIPS + { -1, 0, sys_sysmips, "sysmips" }, /* 50 */ +#else /* !MIPS */ + { -1, 0, sys_sysmachine, "sysmachine" }, /* 50 */ +#endif /* !MIPS */ +#endif /* !I386 */ +#endif /* !SPARC */ + { -1, TF, sys_acct, "acct" }, /* 51 */ + { -1, TI, sys_shmsys, "shmsys" }, /* 52 */ + { -1, TI, sys_semsys, "semsys" }, /* 53 */ + { -1, TD, sys_ioctl, "ioctl" }, /* 54 */ + { -1, 0, sys_uadmin, "uadmin" }, /* 55 */ + { -1, 0, sys_sysmp, "sysmp" }, /* 56 */ + { -1, 0, sys_utssys, "utssys" }, /* 57 */ + { -1, 0, sys_fdsync, "fdsync" }, /* 58 */ + { -1, TF|TP, sys_execve, "execve" }, /* 59 */ + { -1, 0, sys_umask, "umask" }, /* 60 */ + { -1, TF, sys_chroot, "chroot" }, /* 61 */ + { -1, TD, sys_fcntl, "fcntl" }, /* 62 */ + { -1, 0, sys_ulimit, "ulimit" }, /* 63 */ + { -1, 0, printargs, "SYS_64" }, /* 64 */ + { -1, 0, printargs, "SYS_65" }, /* 65 */ + { -1, 0, printargs, "SYS_66" }, /* 66 */ + { -1, 0, printargs, "SYS_67" }, /* 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 */ + { -1, 0, printargs, "SYS_72" }, /* 72 */ + { -1, 0, printargs, "SYS_73" }, /* 73 */ + { -1, 0, printargs, "SYS_74" }, /* 74 */ + { -1, 0, printargs, "SYS_75" }, /* 75 */ + { -1, 0, printargs, "SYS_76" }, /* 76 */ + { -1, 0, printargs, "SYS_77" }, /* 77 */ + { -1, 0, printargs, "SYS_78" }, /* 78 */ + { -1, TF, sys_rmdir, "rmdir" }, /* 79 */ + { -1, TF, sys_mkdir, "mkdir" }, /* 80 */ + { -1, TD, sys_getdents, "getdents" }, /* 81 */ + { -1, 0, sys_sginap, "sginap" }, /* 82 */ + { -1, 0, sys_sgikopt, "sgikopt" }, /* 83 */ + { -1, 0, sys_sysfs, "sysfs" }, /* 84 */ + { -1, TN, sys_getmsg, "getmsg" }, /* 85 */ + { -1, TN, sys_putmsg, "putmsg" }, /* 86 */ + { -1, TN, sys_poll, "poll" }, /* 87 */ +#ifdef MIPS + { -1, TS, sys_sigreturn, "sigreturn" }, /* 88 */ + { -1, TN, sys_accept, "accept" }, /* 89 */ + { -1, TN, sys_bind, "bind" }, /* 90 */ + { -1, TN, sys_connect, "connect" }, /* 91 */ + { -1, 0, sys_gethostid, "gethostid" }, /* 92 */ + { -1, TN, sys_getpeername, "getpeername" }, /* 93 */ + { -1, TN, sys_getsockname, "getsockname" }, /* 94 */ + { -1, TN, sys_getsockopt, "getsockopt" }, /* 95 */ + { -1, TN, sys_listen, "listen" }, /* 96 */ + { -1, TN, sys_recv, "recv" }, /* 97 */ + { -1, TN, sys_recvfrom, "recvfrom" }, /* 98 */ + { -1, TN, sys_recvmsg, "recvmsg" }, /* 99 */ + { -1, TD, sys_select, "select" }, /* 100 */ + { -1, TN, sys_send, "send" }, /* 101 */ + { -1, TN, sys_sendmsg, "sendmsg" }, /* 102 */ + { -1, TN, sys_sendto, "sendto" }, /* 103 */ + { -1, 0, sys_sethostid, "sethostid" }, /* 104 */ + { -1, TN, sys_setsockopt, "setsockopt" }, /* 105 */ + { -1, TN, sys_shutdown, "shutdown" }, /* 106 */ + { -1, TN, sys_socket, "socket" }, /* 107 */ + { -1, 0, sys_gethostname, "gethostname" }, /* 108 */ + { -1, 0, sys_sethostname, "sethostname" }, /* 109 */ + { -1, 0, sys_getdomainname, "getdomainname" }, /* 110 */ + { -1, 0, sys_setdomainname, "setdomainname" }, /* 111 */ + { -1, TF, sys_truncate, "truncate" }, /* 112 */ + { -1, TD, sys_ftruncate, "ftruncate" }, /* 113 */ + { -1, TF, sys_rename, "rename" }, /* 114 */ + { -1, TF, sys_symlink, "symlink" }, /* 115 */ + { -1, TF, sys_readlink, "readlink" }, /* 116 */ + { -1, 0, printargs, "SYS_117" }, /* 117 */ + { -1, 0, printargs, "SYS_118" }, /* 118 */ + { -1, 0, sys_nfssvc, "nfssvc" }, /* 119 */ + { -1, 0, sys_getfh, "getfh" }, /* 120 */ + { -1, 0, sys_async_daemon, "async_daemon" }, /* 121 */ + { -1, 0, sys_exportfs, "exportfs" }, /* 122 */ + { -1, 0, sys_setregid, "setregid" }, /* 123 */ + { -1, 0, sys_setreuid, "setreuid" }, /* 124 */ + { -1, 0, sys_getitimer, "getitimer" }, /* 125 */ + { -1, 0, sys_setitimer, "setitimer" }, /* 126 */ + { -1, 0, sys_adjtime, "adjtime" }, /* 127 */ + { -1, 0, sys_BSD_getime, "BSD_getime" }, /* 128 */ + { -1, 0, sys_sproc, "sproc" }, /* 129 */ + { -1, 0, sys_prctl, "prctl" }, /* 130 */ + { -1, 0, sys_procblk, "procblk" }, /* 131 */ + { -1, 0, sys_sprocsp, "sprocsp" }, /* 132 */ + { -1, 0, printargs, "SYS_133" }, /* 133 */ + { -1, 0, sys_mmap, "mmap" }, /* 134 */ + { -1, 0, sys_munmap, "munmap" }, /* 135 */ + { -1, 0, sys_mprotect, "mprotect" }, /* 136 */ + { -1, 0, sys_msync, "msync" }, /* 137 */ + { -1, 0, sys_madvise, "madvise" }, /* 138 */ + { -1, 0, sys_pagelock, "pagelock" }, /* 139 */ + { -1, 0, sys_getpagesize, "getpagesize" }, /* 140 */ + { -1, 0, sys_quotactl, "quotactl" }, /* 141 */ + { -1, 0, printargs, "SYS_142" }, /* 142 */ + { -1, 0, sys_BSDgetpgrp, "BSDgetpgrp" }, /* 143 */ + { -1, 0, sys_BSDsetpgrp, "BSDsetpgrp" }, /* 144 */ + { -1, 0, sys_vhangup, "vhangup" }, /* 145 */ + { -1, TD, sys_fsync, "fsync" }, /* 146 */ + { -1, TD, sys_fchdir, "fchdir" }, /* 147 */ + { -1, 0, sys_getrlimit, "getrlimit" }, /* 148 */ + { -1, 0, sys_setrlimit, "setrlimit" }, /* 149 */ + { -1, 0, sys_cacheflush, "cacheflush" }, /* 150 */ + { -1, 0, sys_cachectl, "cachectl" }, /* 151 */ + { -1, TD, sys_fchown, "fchown" }, /* 152 */ + { -1, TD, sys_fchmod, "fchmod" }, /* 153 */ + { -1, 0, printargs, "SYS_154" }, /* 154 */ + { -1, TN, sys_socketpair, "socketpair" }, /* 155 */ + { -1, 0, sys_sysinfo, "sysinfo" }, /* 156 */ + { -1, 0, sys_nuname, "nuname" }, /* 157 */ + { -1, TF, sys_xstat, "xstat" }, /* 158 */ + { -1, TF, sys_lxstat, "lxstat" }, /* 159 */ + { -1, 0, sys_fxstat, "fxstat" }, /* 160 */ + { -1, TF, sys_xmknod, "xmknod" }, /* 161 */ + { -1, TS, sys_ksigaction, "sigaction" }, /* 162 */ + { -1, TS, sys_sigpending, "sigpending" }, /* 163 */ + { -1, TS, sys_sigprocmask, "sigprocmask" }, /* 164 */ + { -1, TS, sys_sigsuspend, "sigsuspend" }, /* 165 */ + { -1, TS, sys_sigpoll, "sigpoll" }, /* 166 */ + { -1, 0, sys_swapctl, "swapctl" }, /* 167 */ + { -1, 0, sys_getcontext, "getcontext" }, /* 168 */ + { -1, 0, sys_setcontext, "setcontext" }, /* 169 */ + { -1, TP, sys_waitid, "waitid" }, /* 170 */ + { -1, TS, sys_sigstack, "sigstack" }, /* 171 */ + { -1, TS, sys_sigaltstack, "sigaltstack" }, /* 172 */ + { -1, TS, sys_sigsendset, "sigsendset" }, /* 173 */ + { -1, TF, sys_statvfs, "statvfs" }, /* 174 */ + { -1, 0, sys_fstatvfs, "fstatvfs" }, /* 175 */ + { -1, TN, sys_getpmsg, "getpmsg" }, /* 176 */ + { -1, TN, sys_putpmsg, "putpmsg" }, /* 177 */ + { -1, TF, sys_lchown, "lchown" }, /* 178 */ + { -1, 0, sys_priocntl, "priocntl" }, /* 179 */ + { -1, TS, sys_ksigqueue, "ksigqueue" }, /* 180 */ + { -1, 0, printargs, "SYS_181" }, /* 181 */ + { -1, 0, printargs, "SYS_182" }, /* 182 */ + { -1, 0, printargs, "SYS_183" }, /* 183 */ + { -1, 0, printargs, "SYS_184" }, /* 184 */ + { -1, 0, printargs, "SYS_185" }, /* 185 */ + { -1, 0, printargs, "SYS_186" }, /* 186 */ + { -1, 0, printargs, "SYS_187" }, /* 187 */ + { -1, 0, printargs, "SYS_188" }, /* 188 */ + { -1, 0, printargs, "SYS_189" }, /* 189 */ + { -1, 0, printargs, "SYS_190" }, /* 190 */ + { -1, 0, printargs, "SYS_191" }, /* 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 */ + { -1, 0, printargs, "SYS_198" }, /* 198 */ + { -1, 0, printargs, "SYS_199" }, /* 199 */ + { -1, 0, printargs, "SYS_200" }, /* 200 */ + { -1, 0, printargs, "SYS_201" }, /* 201 */ + { -1, 0, printargs, "SYS_202" }, /* 202 */ + { -1, 0, printargs, "SYS_203" }, /* 203 */ + { -1, 0, printargs, "SYS_204" }, /* 204 */ + { -1, 0, printargs, "SYS_205" }, /* 205 */ + { -1, 0, printargs, "SYS_206" }, /* 206 */ + { -1, 0, printargs, "SYS_207" }, /* 207 */ + { -1, 0, printargs, "SYS_208" }, /* 208 */ + { -1, 0, printargs, "SYS_209" }, /* 209 */ + { -1, 0, printargs, "SYS_210" }, /* 210 */ + { -1, 0, printargs, "SYS_211" }, /* 211 */ + { -1, 0, printargs, "SYS_212" }, /* 212 */ + { -1, 0, printargs, "SYS_213" }, /* 213 */ + { -1, 0, printargs, "SYS_214" }, /* 214 */ + { -1, 0, printargs, "SYS_215" }, /* 215 */ + { -1, 0, printargs, "SYS_216" }, /* 216 */ + { -1, 0, printargs, "SYS_217" }, /* 217 */ + { -1, 0, printargs, "SYS_218" }, /* 218 */ + { -1, 0, printargs, "SYS_219" }, /* 219 */ + { -1, 0, printargs, "SYS_220" }, /* 220 */ + { -1, 0, printargs, "SYS_221" }, /* 221 */ + { -1, 0, printargs, "SYS_222" }, /* 222 */ + { -1, 0, printargs, "SYS_223" }, /* 223 */ + { -1, 0, printargs, "SYS_224" }, /* 224 */ + { -1, 0, printargs, "SYS_225" }, /* 225 */ + { -1, 0, printargs, "SYS_226" }, /* 226 */ + { -1, 0, printargs, "SYS_227" }, /* 227 */ + { -1, 0, printargs, "SYS_228" }, /* 228 */ + { -1, 0, printargs, "SYS_229" }, /* 229 */ + { -1, 0, printargs, "SYS_230" }, /* 230 */ + { -1, 0, printargs, "SYS_231" }, /* 231 */ + { -1, 0, printargs, "SYS_232" }, /* 232 */ + { -1, 0, printargs, "SYS_233" }, /* 233 */ + { -1, 0, printargs, "SYS_234" }, /* 234 */ + { -1, 0, printargs, "SYS_235" }, /* 235 */ + { -1, 0, printargs, "SYS_236" }, /* 236 */ + { -1, 0, printargs, "SYS_237" }, /* 237 */ + { -1, 0, printargs, "SYS_238" }, /* 238 */ + { -1, 0, printargs, "SYS_239" }, /* 239 */ + { -1, 0, printargs, "SYS_240" }, /* 240 */ + { -1, 0, printargs, "SYS_241" }, /* 241 */ + { -1, 0, printargs, "SYS_242" }, /* 242 */ + { -1, 0, printargs, "SYS_243" }, /* 243 */ + { -1, 0, printargs, "SYS_244" }, /* 244 */ + { -1, 0, printargs, "SYS_245" }, /* 245 */ + { -1, 0, printargs, "SYS_246" }, /* 246 */ + { -1, 0, printargs, "SYS_247" }, /* 247 */ + { -1, 0, printargs, "SYS_248" }, /* 248 */ + { -1, 0, printargs, "SYS_249" }, /* 249 */ + { -1, 0, printargs, "SYS_250" }, /* 250 */ + { -1, 0, printargs, "SYS_251" }, /* 251 */ + { -1, 0, printargs, "SYS_252" }, /* 252 */ + { -1, 0, printargs, "SYS_253" }, /* 253 */ + { -1, 0, printargs, "SYS_254" }, /* 254 */ + { -1, 0, printargs, "SYS_255" }, /* 255 */ +#else /* !MIPS */ + { -1, TF, sys_lstat, "lstat" }, /* 88 */ + { -1, TF, sys_symlink, "symlink" }, /* 89 */ + { -1, TF, sys_readlink, "readlink" }, /* 90 */ + { -1, 0, sys_setgroups, "setgroups" }, /* 91 */ + { -1, 0, sys_getgroups, "getgroups" }, /* 92 */ + { -1, TD, sys_fchmod, "fchmod" }, /* 93 */ + { -1, TD, sys_fchown, "fchown" }, /* 94 */ + { -1, TS, sys_sigprocmask, "sigprocmask" }, /* 95 */ + { -1, TS, sys_sigsuspend, "sigsuspend" }, /* 96 */ + { -1, TS, sys_sigaltstack, "sigaltstack" }, /* 97 */ + { -1, TS, sys_sigaction, "sigaction" }, /* 98 */ + { -1, 0, sys_spcall, "spcall" }, /* 99 */ + { -1, 0, sys_context, "context" }, /* 100 */ + { -1, 0, sys_evsys, "evsys" }, /* 101 */ + { -1, 0, sys_evtrapret, "evtrapret" }, /* 102 */ + { -1, TF, sys_statvfs, "statvfs" }, /* 103 */ + { -1, 0, sys_fstatvfs, "fstatvfs" }, /* 104 */ + { -1, 0, printargs, "SYS_105" }, /* 105 */ + { -1, 0, sys_nfssys, "nfssys" }, /* 106 */ +#if UNIXWARE + { -1, TP, sys_waitsys, "waitsys" }, /* 107 */ +#else + { -1, TP, sys_waitid, "waitid" }, /* 107 */ +#endif + { -1, 0, sys_sigsendsys, "sigsendsys" }, /* 108 */ + { -1, 0, sys_hrtsys, "hrtsys" }, /* 109 */ + { -1, 0, sys_acancel, "acancel" }, /* 110 */ + { -1, 0, sys_async, "async" }, /* 111 */ + { -1, 0, sys_priocntlsys, "priocntlsys" }, /* 112 */ + { -1, TF, sys_pathconf, "pathconf" }, /* 113 */ + { -1, 0, sys_mincore, "mincore" }, /* 114 */ + { -1, 0, sys_mmap, "mmap" }, /* 115 */ + { -1, 0, sys_mprotect, "mprotect" }, /* 116 */ + { -1, 0, sys_munmap, "munmap" }, /* 117 */ + { -1, 0, sys_fpathconf, "fpathconf" }, /* 118 */ + { -1, TP, sys_vfork, "vfork" }, /* 119 */ + { -1, TD, sys_fchdir, "fchdir" }, /* 120 */ + { -1, TD, sys_readv, "readv" }, /* 121 */ + { -1, TD, sys_writev, "writev" }, /* 122 */ + { -1, TF, sys_xstat, "xstat" }, /* 123 */ + { -1, TF, sys_lxstat, "lxstat" }, /* 124 */ + { -1, 0, sys_fxstat, "fxstat" }, /* 125 */ + { -1, TF, sys_xmknod, "xmknod" }, /* 126 */ + { -1, 0, sys_clocal, "clocal" }, /* 127 */ + { -1, 0, sys_setrlimit, "setrlimit" }, /* 128 */ + { -1, 0, sys_getrlimit, "getrlimit" }, /* 129 */ + { -1, TF, sys_lchown, "lchown" }, /* 130 */ + { -1, 0, sys_memcntl, "memcntl" }, /* 131 */ + { -1, TN, sys_getpmsg, "getpmsg" }, /* 132 */ + { -1, TN, sys_putpmsg, "putpmsg" }, /* 133 */ + { -1, TF, sys_rename, "rename" }, /* 134 */ + { -1, 0, sys_uname, "uname" }, /* 135 */ + { -1, 0, sys_setegid, "setegid" }, /* 136 */ + { -1, 0, sys_sysconfig, "sysconfig" }, /* 137 */ + { -1, 0, sys_adjtime, "adjtime" }, /* 138 */ + { -1, 0, sys_sysinfo, "sysinfo" }, /* 139 */ + { -1, 0, printargs, "SYS_140" }, /* 140 */ +#if UNIXWARE >= 2 + { -1, 0, sys_seteuid, "seteuid" }, /* 141 */ + { -1, 0, printargs, "SYS_142" }, /* 142 */ + { -1, 0, sys_keyctl, "keyctl" }, /* 143 */ + { -1, 0, sys_secsys, "secsys" }, /* 144 */ + { -1, 0, sys_filepriv, "filepriv" }, /* 145 */ + { -1, 0, sys_procpriv, "procpriv" }, /* 146 */ + { -1, 0, sys_devstat, "devstat" }, /* 147 */ + { -1, 0, sys_aclipc, "aclipc" }, /* 148 */ + { -1, 0, sys_fdevstat, "fdevstat" }, /* 149 */ + { -1, 0, sys_flvlfile, "flvlfile" }, /* 150 */ + { -1, 0, sys_lvlfile, "lvlfile" }, /* 151 */ + { -1, 0, printargs, "SYS_152" }, /* 152 */ + { -1, 0, sys_lvlequal, "lvlequal" }, /* 153 */ + { -1, 0, sys_lvlproc, "lvlproc" }, /* 154 */ + { -1, 0, printargs, "SYS_155" }, /* 155 */ + { -1, 0, sys_lvlipc, "lvlipc" }, /* 156 */ + { -1, 0, sys_acl, "acl" }, /* 157 */ + { -1, 0, sys_auditevt, "auditevt" }, /* 158 */ + { -1, 0, sys_auditctl, "auditctl" }, /* 159 */ + { -1, 0, sys_auditdmp, "auditdmp" }, /* 160 */ + { -1, 0, sys_auditlog, "auditlog" }, /* 161 */ + { -1, 0, sys_auditbuf, "auditbuf" }, /* 162 */ + { -1, 0, sys_lvldom, "lvldom" }, /* 163 */ + { -1, 0, sys_lvlvfs, "lvlvfs" }, /* 164 */ + { -1, 0, sys_mkmld, "mkmld" }, /* 165 */ + { -1, 0, sys_mldmode, "mldmode" }, /* 166 */ + { -1, 0, sys_secadvise, "secadvise" }, /* 167 */ + { -1, 0, sys_online, "online" }, /* 168 */ + { -1, 0, sys_setitimer, "setitimer" }, /* 169 */ + { -1, 0, sys_getitimer, "getitimer" }, /* 170 */ + { -1, 0, sys_gettimeofday, "gettimeofday" }, /* 171 */ + { -1, 0, sys_settimeofday, "settimeofday" }, /* 172 */ + { -1, 0, sys_lwp_create, "lwpcreate" }, /* 173 */ + { -1, 0, sys_lwp_exit, "lwpexit" }, /* 174 */ + { -1, 0, sys_lwp_wait, "lwpwait" }, /* 175 */ + { -1, 0, sys_lwp_self, "lwpself" }, /* 176 */ + { -1, 0, sys_lwpinfo, "lwpinfo" }, /* 177 */ + { -1, 0, sys_lwpprivate, "lwpprivate" }, /* 178 */ + { -1, 0, sys_processor_bind, "processor_bind"}, /* 179 */ + { -1, 0, sys_processor_exbind, "processor_exbind"}, /* 180 */ + { -1, 0, printargs, "SYS_181" }, /* 181 */ + { -1, 0, printargs, "SYS_182" }, /* 182 */ + { -1, 0, sys_prepblock, "prepblock" }, /* 183 */ + { -1, 0, sys_block, "block" }, /* 184 */ + { -1, 0, sys_rdblock, "rdblock" }, /* 185 */ + { -1, 0, sys_unblock, "unblock" }, /* 186 */ + { -1, 0, sys_cancelblock, "cancelblock" }, /* 187 */ + { -1, 0, printargs, "SYS_188" }, /* 188 */ + { -1, TD, sys_pread, "pread" }, /* 189 */ + { -1, TD, sys_pwrite, "pwrite" }, /* 190 */ + { -1, TF, sys_truncate, "truncate" }, /* 191 */ + { -1, TD, sys_ftruncate, "ftruncate" }, /* 192 */ + { -1, 0, sys_lwpkill, "lwpkill" }, /* 193 */ + { -1, 0, sys_sigwait, "sigwait" }, /* 194 */ + { -1, 0, sys_fork1, "fork1" }, /* 195 */ + { -1, 0, sys_forkall, "forkall" }, /* 196 */ + { -1, 0, sys_modload, "modload" }, /* 197 */ + { -1, 0, sys_moduload, "moduload" }, /* 198 */ + { -1, 0, sys_modpath, "modpath" }, /* 199 */ + { -1, 0, sys_modstat, "modstat" }, /* 200 */ + { -1, 0, sys_modadm, "modadm" }, /* 201 */ + { -1, 0, sys_getksym, "getksym" }, /* 202 */ + { -1, 0, sys_lwpsuspend, "lwpsuspend" }, /* 203 */ + { -1, 0, sys_lwpcontinue, "lwpcontinue" }, /* 204 */ + { -1, 0, sys_priocntllst, "priocntllst" }, /* 205 */ + { -1, 0, sys_sleep, "sleep" }, /* 206 */ + { -1, 0, sys_lwp_sema_wait, "lwp_sema_wait" }, /* 207 */ + { -1, 0, sys_lwp_sema_post, "lwp_sema_post" }, /* 208 */ + { -1, 0, sys_lwp_sema_trywait, "lwp_sema_trywait"}, /* 209 */ + { -1, 0, printargs, "SYS_210" }, /* 210 */ + { -1, 0, printargs, "SYS_211" }, /* 211 */ + { -1, 0, printargs, "SYS_212" }, /* 212 */ + { -1, 0, printargs, "SYS_213" }, /* 213 */ + { -1, 0, printargs, "SYS_214" }, /* 214 */ + { -1, 0, printargs, "SYS_215" }, /* 215 */ +#if UNIXWARE >= 7 + { -1, 0, sys_fstatvfs64, "fstatvfs64" }, /* 216 */ + { -1, TF, sys_statvfs64, "statvfs64" }, /* 217 */ + { -1, TD, sys_ftruncate64, "ftruncate64" }, /* 218 */ + { -1, TF, sys_truncate64, "truncate64" }, /* 219 */ + { -1, 0, sys_getrlimit64, "getrlimit64" }, /* 220 */ + { -1, 0, sys_setrlimit64, "setrlimit64" }, /* 221 */ + { -1, TF, sys_lseek64, "lseek64" }, /* 222 */ + { -1, TF, sys_mmap64, "mmap64" }, /* 223 */ + { -1, TF, sys_pread64, "pread64" }, /* 224 */ + { -1, TF, sys_pwrite64, "pwrite64" }, /* 225 */ + { -1, TD|TF, sys_creat64, "creat64" }, /* 226 */ + { -1, 0, sys_dshmsys, "dshmsys" }, /* 227 */ + { -1, 0, sys_invlpg, "invlpg" }, /* 228 */ + { -1, 0, sys_rfork1, "rfork1" }, /* 229 */ + { -1, 0, sys_rforkall, "rforkall" }, /* 230 */ + { -1, 0, sys_rexecve, "rexecve" }, /* 231 */ + { -1, 0, sys_migrate, "migrate" }, /* 232 */ + { -1, 0, sys_kill3, "kill3" }, /* 233 */ + { -1, 0, sys_ssisys, "ssisys" }, /* 234 */ + { -1, TN, sys_xaccept, "xaccept" }, /* 235 */ + { -1, TN, sys_xbind, "xbind" }, /* 236 */ + { -1, TN, sys_xbindresvport, "xbindresvport" }, /* 237 */ + { -1, TN, sys_xconnect, "xconnect" }, /* 238 */ + { -1, TN, sys_xgetsockaddr, "xgetsockaddr" }, /* 239 */ + { -1, TN, sys_xgetsockopt, "xgetsockopt" }, /* 240 */ + { -1, TN, sys_xlisten, "xlisten" }, /* 241 */ + { -1, TN, sys_xrecvmsg, "xrecvmsg" }, /* 242 */ + { -1, TN, sys_xsendmsg, "xsendmsg" }, /* 243 */ + { -1, TN, sys_xsetsockaddr, "xsetsockaddr" }, /* 244 */ + { -1, TN, sys_xsetsockopt, "xsetsockopt" }, /* 245 */ + { -1, TN, sys_xshutdown, "xshutdown" }, /* 246 */ + { -1, TN, sys_xsocket, "xsocket" }, /* 247 */ + { -1, TN, sys_xsocketpair, "xsocketpair" }, /* 248 */ +#else /* UNIXWARE 2 */ + { -1, 0, printargs, "SYS_216" }, /* 216 */ + { -1, 0, printargs, "SYS_217" }, /* 217 */ + { -1, 0, printargs, "SYS_218" }, /* 218 */ + { -1, 0, printargs, "SYS_219" }, /* 219 */ + { -1, 0, printargs, "SYS_220" }, /* 220 */ + { -1, 0, printargs, "SYS_221" }, /* 221 */ + { -1, 0, printargs, "SYS_222" }, /* 222 */ + { -1, 0, printargs, "SYS_223" }, /* 223 */ + { -1, 0, printargs, "SYS_224" }, /* 224 */ + { -1, 0, printargs, "SYS_225" }, /* 225 */ + { -1, 0, printargs, "SYS_226" }, /* 226 */ + { -1, 0, printargs, "SYS_227" }, /* 227 */ + { -1, 0, printargs, "SYS_228" }, /* 228 */ + { -1, 0, printargs, "SYS_229" }, /* 229 */ + { -1, 0, printargs, "SYS_230" }, /* 230 */ + { -1, 0, printargs, "SYS_231" }, /* 231 */ + { -1, 0, printargs, "SYS_232" }, /* 232 */ + { -1, 0, printargs, "SYS_233" }, /* 233 */ + { -1, 0, printargs, "SYS_234" }, /* 234 */ + { -1, 0, printargs, "SYS_235" }, /* 235 */ + { -1, 0, printargs, "SYS_236" }, /* 236 */ + { -1, 0, printargs, "SYS_237" }, /* 237 */ + { -1, 0, printargs, "SYS_238" }, /* 238 */ + { -1, 0, printargs, "SYS_239" }, /* 239 */ + { -1, 0, printargs, "SYS_240" }, /* 240 */ + { -1, 0, printargs, "SYS_241" }, /* 241 */ + { -1, 0, printargs, "SYS_242" }, /* 242 */ + { -1, 0, printargs, "SYS_243" }, /* 243 */ + { -1, 0, printargs, "SYS_244" }, /* 244 */ + { -1, 0, printargs, "SYS_245" }, /* 245 */ + { -1, 0, printargs, "SYS_246" }, /* 246 */ + { -1, 0, printargs, "SYS_247" }, /* 247 */ + { -1, 0, printargs, "SYS_248" }, /* 248 */ +#endif /* UNIXWARE 2 */ + { -1, 0, printargs, "SYS_249" }, /* 249 */ + { -1, 0, printargs, "SYS_250" }, /* 250 */ + { -1, 0, printargs, "SYS_251" }, /* 251 */ + { -1, 0, printargs, "SYS_252" }, /* 252 */ + { -1, 0, printargs, "SYS_253" }, /* 253 */ + { -1, 0, printargs, "SYS_254" }, /* 254 */ + { -1, 0, printargs, "SYS_255" }, /* 255 */ +#else /* !UNIXWARE */ + { -1, 0, sys_seteuid, "seteuid" }, /* 141 */ + { -1, 0, sys_vtrace, "vtrace" }, /* 142 */ + { -1, TP, sys_fork1, "fork1" }, /* 143 */ + { -1, TS, sys_sigtimedwait, "sigtimedwait" }, /* 144 */ + { -1, 0, sys_lwp_info, "lwp_info" }, /* 145 */ + { -1, 0, sys_yield, "yield" }, /* 146 */ + { -1, 0, sys_lwp_sema_wait, "lwp_sema_wait" }, /* 147 */ + { -1, 0, sys_lwp_sema_post, "lwp_sema_post" }, /* 148 */ + { -1, 0, sys_lwp_sema_trywait,"lwp_sema_trywait" }, /* 149 */ + { -1, 0, printargs, "SYS_150" }, /* 150 */ + { -1, 0, printargs, "SYS_151" }, /* 151 */ + { -1, 0, sys_modctl, "modctl" }, /* 152 */ + { -1, 0, sys_fchroot, "fchroot" }, /* 153 */ + { -1, TF, sys_utimes, "utimes" }, /* 154 */ + { -1, 0, sys_vhangup, "vhangup" }, /* 155 */ + { -1, 0, sys_gettimeofday, "gettimeofday" }, /* 156 */ + { -1, 0, sys_getitimer, "getitimer" }, /* 157 */ + { -1, 0, sys_setitimer, "setitimer" }, /* 158 */ + { -1, 0, sys_lwp_create, "lwp_create" }, /* 159 */ + { -1, 0, sys_lwp_exit, "lwp_exit" }, /* 160 */ + { -1, 0, sys_lwp_suspend, "lwp_suspend" }, /* 161 */ + { -1, 0, sys_lwp_continue, "lwp_continue" }, /* 162 */ + { -1, 0, sys_lwp_kill, "lwp_kill" }, /* 163 */ + { -1, 0, sys_lwp_self, "lwp_self" }, /* 164 */ + { -1, 0, sys_lwp_setprivate, "lwp_setprivate"}, /* 165 */ + { -1, 0, sys_lwp_getprivate, "lwp_getprivate"}, /* 166 */ + { -1, 0, sys_lwp_wait, "lwp_wait" }, /* 167 */ + { -1, 0, sys_lwp_mutex_unlock, "lwp_mutex_unlock"}, /* 168 */ + { -1, 0, sys_lwp_mutex_lock, "lwp_mutex_lock"}, /* 169 */ + { -1, 0, sys_lwp_cond_wait, "lwp_cond_wait"}, /* 170 */ + { -1, 0, sys_lwp_cond_signal, "lwp_cond_signal"}, /* 171 */ + { -1, 0, sys_lwp_cond_broadcast, "lwp_cond_broadcast"}, /* 172 */ + { -1, TD, sys_pread, "pread" }, /* 173 */ + { -1, TD, sys_pwrite, "pwrite" }, /* 174 */ + { -1, TD, sys_llseek, "llseek" }, /* 175 */ + { -1, 0, sys_inst_sync, "inst_sync" }, /* 176 */ + { -1, 0, printargs, "srmlimitsys" }, /* 177 */ + { -1, 0, sys_kaio, "kaio" }, /* 178 */ + { -1, 0, printargs, "cpc" }, /* 179 */ + { -1, 0, printargs, "SYS_180" }, /* 180 */ + { -1, 0, printargs, "SYS_181" }, /* 181 */ + { -1, 0, printargs, "SYS_182" }, /* 182 */ + { -1, 0, printargs, "SYS_183" }, /* 183 */ + { -1, 0, sys_tsolsys, "tsolsys" }, /* 184 */ +#ifdef HAVE_SYS_ACL_H + { -1, TF, sys_acl, "acl" }, /* 185 */ +#else + { -1, 0, printargs, "SYS_185" }, /* 185 */ +#endif + { -1, 0, sys_auditsys, "auditsys" }, /* 186 */ + { -1, 0, sys_processor_bind, "processor_bind"}, /* 187 */ + { -1, 0, sys_processor_info, "processor_info"}, /* 188 */ + { -1, 0, sys_p_online, "p_online" }, /* 189 */ + { -1, 0, sys_sigqueue, "sigqueue" }, /* 190 */ + { -1, 0, sys_clock_gettime, "clock_gettime" }, /* 191 */ + { -1, 0, sys_clock_settime, "clock_settime" }, /* 192 */ + { -1, 0, sys_clock_getres, "clock_getres" }, /* 193 */ + { -1, 0, sys_timer_create, "timer_create" }, /* 194 */ + { -1, 0, sys_timer_delete, "timer_delete" }, /* 195 */ + { -1, 0, sys_timer_settime, "timer_settime" }, /* 196 */ + { -1, 0, sys_timer_gettime, "timer_gettime" }, /* 197 */ + { -1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 198 */ + { -1, 0, sys_nanosleep, "nanosleep" }, /* 199 */ +#ifdef HAVE_SYS_ACL_H + { -1, 0, sys_facl, "facl" }, /* 200 */ +#else + { -1, 0, printargs, "SYS_200" }, /* 200 */ +#endif +#ifdef HAVE_SYS_DOOR_H + { -1, 0, sys_door, "door" }, /* 201 */ +#else + { -1, 0, printargs, "SYS_201" }, /* 201 */ +#endif + { -1, 0, sys_setreuid, "setreuid" }, /* 202 */ + { -1, 0, sys_setregid, "setregid" }, /* 203 */ + { -1, 0, sys_install_utrap, "install_utrap" }, /* 204 */ + { -1, 0, sys_signotify, "signotify" }, /* 205 */ + { -1, 0, sys_schedctl, "schedctl" }, /* 206 */ + { -1, 0, sys_pset, "pset" }, /* 207 */ + { -1, 0, printargs, "__sparc_utrap_install" }, /* 208 */ + { -1, 0, sys_resolvepath, "resolvepath" }, /* 209 */ + { -1, 0, sys_signotifywait, "signotifywait" }, /* 210 */ + { -1, 0, sys_lwp_sigredirect, "lwp_sigredirect" }, /* 211 */ + { -1, 0, sys_lwp_alarm, "lwp_alarm" }, /* 212 */ + { -1, TD, sys_getdents64, "getdents64" }, /* 213 */ + { -1, 0, sys_mmap64, "mmap64" }, /* 214 */ + { -1, 0, sys_stat64, "stat64" }, /* 215 */ + { -1, 0, sys_lstat64, "lstat64" }, /* 216 */ + { -1, TD, sys_fstat64, "fstat64" }, /* 217 */ + { -1, 0, sys_statvfs64, "statvfs64" }, /* 218 */ + { -1, 0, sys_fstatvfs64, "fstatvfs64" }, /* 219 */ + { -1, 0, sys_setrlimit64, "setrlimit64" }, /* 220 */ + { -1, 0, sys_getrlimit64, "getrlimit64" }, /* 221 */ + { -1, TD, sys_pread64, "pread64" }, /* 222 */ + { -1, TD, sys_pwrite64, "pwrite64" }, /* 223 */ + { -1, 0, sys_creat64, "creat64" }, /* 224 */ + { -1, 0, sys_open64, "open64" }, /* 225 */ + { -1, 0, sys_rpcsys, "rpcsys" }, /* 226 */ + { -1, 0, printargs, "SYS_227" }, /* 227 */ + { -1, 0, printargs, "SYS_228" }, /* 228 */ + { -1, 0, printargs, "SYS_229" }, /* 229 */ + { -1, TN, sys_so_socket, "so_socket" }, /* 230 */ + { -1, TN, sys_so_socketpair, "so_socketpair" }, /* 231 */ + { -1, TN, sys_bind, "bind" }, /* 232 */ + { -1, TN, sys_listen, "listen" }, /* 233 */ + { -1, TN, sys_accept, "accept" }, /* 234 */ + { -1, TN, sys_connect, "connect" }, /* 235 */ + { -1, TN, sys_shutdown, "shutdown" }, /* 236 */ + { -1, TN, sys_recv, "recv" }, /* 237 */ + { -1, TN, sys_recvfrom, "recvfrom" }, /* 238 */ + { -1, TN, sys_recvmsg, "recvmsg" }, /* 239 */ + { -1, TN, sys_send, "send" }, /* 240 */ + { -1, TN, sys_sendmsg, "sendmsg" }, /* 241 */ + { -1, TN, sys_sendto, "sendto" }, /* 242 */ + { -1, TN, sys_getpeername, "getpeername" }, /* 243 */ + { -1, TN, sys_getsockname, "getsockname" }, /* 244 */ + { -1, TN, sys_getsockopt, "getsockopt" }, /* 245 */ + { -1, TN, sys_setsockopt, "setsockopt" }, /* 246 */ + { -1, TN, sys_sockconfig, "sockconfig" }, /* 247 */ + { -1, 0, sys_ntp_gettime, "ntp_gettime" }, /* 248 */ + { -1, 0, sys_ntp_adjtime, "ntp_adjtime" }, /* 249 */ + { -1, 0, printargs, "lwp_mutex_unlock" }, /* 250 */ + { -1, 0, printargs, "lwp_mutex_trylock" }, /* 251 */ + { -1, 0, printargs, "lwp_mutex_init" }, /* 252 */ + { -1, 0, printargs, "cladm" }, /* 253 */ + { -1, 0, printargs, "lwp_sig_timedwait" }, /* 254 */ + { -1, 0, printargs, "umount2" }, /* 255 */ +#endif /* !UNIXWARE */ +#endif /* !MIPS */ + { -1, 0, printargs, "SYS_256" }, /* 256 */ + { -1, 0, printargs, "SYS_257" }, /* 257 */ + { -1, 0, printargs, "SYS_258" }, /* 258 */ + { -1, 0, printargs, "SYS_259" }, /* 259 */ + { -1, 0, printargs, "SYS_260" }, /* 260 */ + { -1, 0, printargs, "SYS_261" }, /* 261 */ + { -1, 0, printargs, "SYS_262" }, /* 262 */ + { -1, 0, printargs, "SYS_263" }, /* 263 */ + { -1, 0, printargs, "SYS_264" }, /* 264 */ + { -1, 0, printargs, "SYS_265" }, /* 265 */ + { -1, 0, printargs, "SYS_266" }, /* 266 */ + { -1, 0, printargs, "SYS_267" }, /* 267 */ + { -1, 0, printargs, "SYS_268" }, /* 268 */ + { -1, 0, printargs, "SYS_269" }, /* 269 */ + { -1, 0, printargs, "SYS_270" }, /* 270 */ + { -1, 0, printargs, "SYS_271" }, /* 271 */ + { -1, 0, printargs, "SYS_272" }, /* 272 */ + { -1, 0, printargs, "SYS_273" }, /* 273 */ + { -1, 0, printargs, "SYS_274" }, /* 274 */ + { -1, 0, printargs, "SYS_275" }, /* 275 */ + { -1, 0, printargs, "SYS_276" }, /* 276 */ + { -1, 0, printargs, "SYS_277" }, /* 277 */ + { -1, 0, printargs, "SYS_278" }, /* 278 */ + { -1, 0, printargs, "SYS_279" }, /* 279 */ + { -1, 0, printargs, "SYS_280" }, /* 280 */ + { -1, 0, printargs, "SYS_281" }, /* 281 */ + { -1, 0, printargs, "SYS_282" }, /* 282 */ + { -1, 0, printargs, "SYS_283" }, /* 283 */ + { -1, 0, printargs, "SYS_284" }, /* 284 */ + { -1, 0, printargs, "SYS_285" }, /* 285 */ + { -1, 0, printargs, "SYS_286" }, /* 286 */ + { -1, 0, printargs, "SYS_287" }, /* 287 */ + { -1, 0, printargs, "SYS_288" }, /* 288 */ + { -1, 0, printargs, "SYS_289" }, /* 289 */ + { -1, 0, printargs, "SYS_290" }, /* 290 */ + { -1, 0, printargs, "SYS_291" }, /* 291 */ + { -1, 0, printargs, "SYS_292" }, /* 292 */ + { -1, 0, printargs, "SYS_293" }, /* 293 */ + { -1, 0, printargs, "SYS_294" }, /* 294 */ + { -1, 0, printargs, "SYS_295" }, /* 295 */ + { -1, 0, printargs, "SYS_296" }, /* 296 */ + { -1, 0, printargs, "SYS_297" }, /* 297 */ + { -1, 0, printargs, "SYS_298" }, /* 298 */ + { -1, 0, printargs, "SYS_299" }, /* 299 */ + + { -1, 0, sys_getpgrp, "getpgrp" }, /* 300 */ + { -1, 0, sys_setpgrp, "setpgrp" }, /* 301 */ + { -1, 0, sys_getsid, "getsid" }, /* 302 */ + { -1, 0, sys_setsid, "setsid" }, /* 303 */ + { -1, 0, sys_getpgid, "getpgid" }, /* 304 */ + { -1, 0, sys_setpgid, "setpgid" }, /* 305 */ + { -1, 0, printargs, "SYS_306" }, /* 306 */ + { -1, 0, printargs, "SYS_307" }, /* 307 */ + { -1, 0, printargs, "SYS_308" }, /* 308 */ + { -1, 0, printargs, "SYS_309" }, /* 309 */ + + { -1, TS, sys_signal, "signal" }, /* 310 */ + { -1, TS, sys_sigset, "sigset" }, /* 311 */ + { -1, TS, sys_sighold, "sighold" }, /* 312 */ + { -1, TS, sys_sigrelse, "sigrelse" }, /* 313 */ + { -1, TS, sys_sigignore, "sigignore" }, /* 314 */ + { -1, TS, sys_sigpause, "sigpause" }, /* 315 */ + { -1, 0, printargs, "SYS_316" }, /* 316 */ + { -1, 0, printargs, "SYS_317" }, /* 317 */ + { -1, 0, printargs, "SYS_318" }, /* 318 */ + { -1, 0, printargs, "SYS_319" }, /* 319 */ + + { -1, TI, sys_msgget, "msgget" }, /* 320 */ + { -1, TI, sys_msgctl, "msgctl" }, /* 321 */ + { -1, TI, sys_msgrcv, "msgrcv" }, /* 322 */ + { -1, TI, sys_msgsnd, "msgsnd" }, /* 323 */ + { -1, 0, printargs, "SYS_324" }, /* 324 */ + { -1, 0, printargs, "SYS_325" }, /* 325 */ + { -1, 0, printargs, "SYS_326" }, /* 326 */ + { -1, 0, printargs, "SYS_327" }, /* 327 */ + { -1, 0, printargs, "SYS_328" }, /* 328 */ + { -1, 0, printargs, "SYS_329" }, /* 329 */ + + { -1, TI, sys_shmat, "shmat" }, /* 330 */ + { -1, TI, sys_shmctl, "shmctl" }, /* 331 */ + { -1, TI, sys_shmdt, "shmdt" }, /* 332 */ + { -1, TI, sys_shmget, "shmget" }, /* 333 */ + { -1, 0, printargs, "SYS_334" }, /* 334 */ + { -1, 0, printargs, "SYS_335" }, /* 335 */ + { -1, 0, printargs, "SYS_336" }, /* 336 */ + { -1, 0, printargs, "SYS_337" }, /* 337 */ + { -1, 0, printargs, "SYS_338" }, /* 338 */ + { -1, 0, printargs, "SYS_339" }, /* 339 */ + + { -1, TI, sys_semctl, "semctl" }, /* 340 */ + { -1, TI, sys_semget, "semget" }, /* 341 */ + { -1, TI, sys_semop, "semop" }, /* 342 */ + { -1, 0, printargs, "SYS_343" }, /* 343 */ + { -1, 0, printargs, "SYS_344" }, /* 344 */ + { -1, 0, printargs, "SYS_345" }, /* 345 */ + { -1, 0, printargs, "SYS_346" }, /* 346 */ + { -1, 0, printargs, "SYS_347" }, /* 347 */ + { -1, 0, printargs, "SYS_348" }, /* 348 */ + { -1, 0, printargs, "SYS_349" }, /* 349 */ + + { -1, 0, sys_olduname, "olduname" }, /* 350 */ + { -1, 0, printargs, "utssys1" }, /* 351 */ + { -1, 0, sys_ustat, "ustat" }, /* 352 */ + { -1, 0, sys_fusers, "fusers" }, /* 353 */ + { -1, 0, printargs, "SYS_354" }, /* 354 */ + { -1, 0, printargs, "SYS_355" }, /* 355 */ + { -1, 0, printargs, "SYS_356" }, /* 356 */ + { -1, 0, printargs, "SYS_357" }, /* 357 */ + { -1, 0, printargs, "SYS_358" }, /* 358 */ + { -1, 0, printargs, "SYS_359" }, /* 359 */ + + { -1, 0, printargs, "sysfs0" }, /* 360 */ + { -1, 0, sys_sysfs1, "sysfs1" }, /* 361 */ + { -1, 0, sys_sysfs2, "sysfs2" }, /* 362 */ + { -1, 0, sys_sysfs3, "sysfs3" }, /* 363 */ + { -1, 0, printargs, "SYS_364" }, /* 364 */ + { -1, 0, printargs, "SYS_365" }, /* 365 */ + { -1, 0, printargs, "SYS_366" }, /* 366 */ + { -1, 0, printargs, "SYS_367" }, /* 367 */ + { -1, 0, printargs, "SYS_368" }, /* 368 */ + { -1, 0, printargs, "SYS_369" }, /* 369 */ + + { -1, 0, printargs, "spcall0" }, /* 370 */ + { -1, TS, sys_sigpending, "sigpending" }, /* 371 */ + { -1, TS, sys_sigfillset, "sigfillset" }, /* 372 */ + { -1, 0, printargs, "SYS_373" }, /* 373 */ + { -1, 0, printargs, "SYS_374" }, /* 374 */ + { -1, 0, printargs, "SYS_375" }, /* 375 */ + { -1, 0, printargs, "SYS_376" }, /* 376 */ + { -1, 0, printargs, "SYS_377" }, /* 377 */ + { -1, 0, printargs, "SYS_378" }, /* 378 */ + { -1, 0, printargs, "SYS_379" }, /* 379 */ + + { -1, 0, sys_getcontext, "getcontext" }, /* 380 */ + { -1, 0, sys_setcontext, "setcontext" }, /* 381 */ + { -1, 0, printargs, "SYS_382" }, /* 382 */ + { -1, 0, printargs, "SYS_383" }, /* 383 */ + { -1, 0, printargs, "SYS_384" }, /* 384 */ + { -1, 0, printargs, "SYS_385" }, /* 385 */ + { -1, 0, printargs, "SYS_386" }, /* 386 */ + { -1, 0, printargs, "SYS_387" }, /* 387 */ + { -1, 0, printargs, "SYS_388" }, /* 388 */ + { -1, 0, printargs, "SYS_389" }, /* 389 */ + + { -1, 0, printargs, "door_create" }, /* 390 */ + { -1, 0, printargs, "door_revoke" }, /* 391 */ + { -1, 0, printargs, "door_info" }, /* 392 */ + { -1, 0, printargs, "door_call" }, /* 393 */ + { -1, 0, printargs, "door_return" }, /* 394 */ + { -1, 0, printargs, "door_cred" }, /* 395 */ + { -1, 0, printargs, "SYS_396" }, /* 396 */ + { -1, 0, printargs, "SYS_397" }, /* 397 */ + { -1, 0, printargs, "SYS_398" }, /* 398 */ + { -1, 0, printargs, "SYS_399" }, /* 399 */ + +#ifdef HAVE_SYS_AIO_H + { -1, TF, sys_aioread, "aioread" }, /* 400 */ + { -1, TF, sys_aiowrite, "aiowrite" }, /* 401 */ + { -1, TF, sys_aiowait, "aiowait" }, /* 402 */ + { -1, TF, sys_aiocancel, "aiocancel" }, /* 403 */ + { -1, TF, sys_aionotify, "aionotify" }, /* 404 */ + { -1, TF, sys_aioinit, "aioinit" }, /* 405 */ + { -1, TF, sys_aiostart, "aiostart" }, /* 406 */ + { -1, TF, sys_aiolio, "aiolio" }, /* 407 */ + { -1, TF, sys_aiosuspend, "aiosuspend" }, /* 408 */ + { -1, TF, sys_aioerror, "aioerror" }, /* 409 */ + { -1, TF, sys_aioliowait, "aioliowait" }, /* 410 */ + { -1, TF, sys_aioaread, "aioaread" }, /* 411 */ + { -1, TF, sys_aioawrite, "aioawrite" }, /* 412 */ + { -1, TF, sys_aiolio64, "aiolio64" }, /* 413 */ + { -1, TF, sys_aiosuspend64, "aiosuspend64" }, /* 414 */ + { -1, TF, sys_aioerror64, "aioerror64" }, /* 415 */ + { -1, TF, sys_aioliowait64, "aioliowait64" }, /* 416 */ + { -1, TF, sys_aioaread64, "aioaread64" }, /* 417 */ + { -1, TF, sys_aioawrite64, "aioawrite64" }, /* 418 */ + { -1, TF, sys_aiocancel64, "aiocancel64" }, /* 419 */ + { -1, TF, sys_aiofsync, "aiofsync" }, /* 420 */ +#endif
diff --git a/strace-4.5.20/syscall.c b/strace-4.5.20/syscall.c new file mode 100644 index 0000000..b7bb733 --- /dev/null +++ b/strace-4.5.20/syscall.c
@@ -0,0 +1,2799 @@ +/* + * 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$ + */ + +#include "defs.h" + +#include <signal.h> +#include <time.h> +#include <errno.h> +#include <sys/user.h> +#include <sys/syscall.h> +#include <sys/param.h> + +#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) +# 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.h" + +/* Define these shorthand notations to simplify the syscallent files. */ +#define TD TRACE_DESC +#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]; +int qual_flags0[MAX_QUALS]; + +#if SUPPORTED_PERSONALITIES >= 2 +static const struct sysent sysent1[] = { +#include "syscallent1.h" +}; +static const int nsyscalls1 = sizeof sysent1 / sizeof sysent1[0]; +int qual_flags1[MAX_QUALS]; +#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]; +int qual_flags2[MAX_QUALS]; +#endif /* SUPPORTED_PERSONALITIES >= 3 */ + +const struct sysent *sysent; +int *qual_flags; +int nsyscalls; + +/* Now undef them since short defines cause wicked namespace pollution. */ +#undef TD +#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; + +#ifndef PERSONALITY0_WORDSIZE +# define PERSONALITY0_WORDSIZE sizeof(long) +#endif +const int personality_wordsize[SUPPORTED_PERSONALITIES] = { + PERSONALITY0_WORDSIZE, +#if SUPPORTED_PERSONALITIES > 1 + PERSONALITY1_WORDSIZE, +#endif +#if SUPPORTED_PERSONALITIES > 2 + PERSONALITY2_WORDSIZE, +#endif +};; + +int +set_personality(int personality) +{ + switch (personality) { + case 0: + errnoent = errnoent0; + nerrnos = nerrnos0; + sysent = sysent0; + nsyscalls = nsyscalls0; + ioctlent = ioctlent0; + nioctlents = nioctlents0; + signalent = signalent0; + nsignals = nsignals0; + qual_flags = qual_flags0; + break; + +#if SUPPORTED_PERSONALITIES >= 2 + case 1: + errnoent = errnoent1; + nerrnos = nerrnos1; + sysent = sysent1; + nsyscalls = nsyscalls1; + ioctlent = ioctlent1; + nioctlents = nioctlents1; + signalent = signalent1; + nsignals = nsignals1; + qual_flags = qual_flags1; + 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; + qual_flags = qual_flags2; + break; +#endif /* SUPPORTED_PERSONALITIES >= 3 */ + + default: + return -1; + } + + current_personality = personality; + return 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, pers) + int n; + const struct qual_options *opt; + int not; + int pers; +{ + if (pers == 0 || pers < 0) { + if (not) + qual_flags0[n] &= ~opt->bitflag; + else + qual_flags0[n] |= opt->bitflag; + } + +#if SUPPORTED_PERSONALITIES >= 2 + if (pers == 1 || pers < 0) { + if (not) + qual_flags1[n] &= ~opt->bitflag; + else + qual_flags1[n] |= opt->bitflag; + } +#endif /* SUPPORTED_PERSONALITIES >= 2 */ + +#if SUPPORTED_PERSONALITIES >= 3 + if (pers == 2 || pers < 0) { + if (not) + qual_flags2[n] &= ~opt->bitflag; + else + qual_flags2[n] |= opt->bitflag; + } +#endif /* SUPPORTED_PERSONALITIES >= 3 */ +} + +static int +qual_syscall(s, opt, not) + char *s; + const struct qual_options *opt; + int not; +{ + int i; + int rc = -1; + + if (isdigit((unsigned char)*s)) { + int i = atoi(s); + if (i < 0 || i >= MAX_QUALS) + return -1; + qualify_one(i, opt, not, -1); + return 0; + } + for (i = 0; i < nsyscalls0; i++) + if (strcmp(s, sysent0[i].sys_name) == 0) { + qualify_one(i, opt, not, 0); + rc = 0; + } + +#if SUPPORTED_PERSONALITIES >= 2 + for (i = 0; i < nsyscalls1; i++) + if (strcmp(s, sysent1[i].sys_name) == 0) { + qualify_one(i, opt, not, 1); + rc = 0; + } +#endif /* SUPPORTED_PERSONALITIES >= 2 */ + +#if SUPPORTED_PERSONALITIES >= 3 + for (i = 0; i < nsyscalls2; i++) + if (strcmp(s, sysent2[i].sys_name) == 0) { + qualify_one(i, opt, not, 2); + rc = 0; + } +#endif /* SUPPORTED_PERSONALITIES >= 3 */ + + return rc; +} + +static int +qual_signal(s, opt, not) + char *s; + const struct qual_options *opt; + int not; +{ + int i; + char buf[32]; + + if (isdigit((unsigned char)*s)) { + int signo = atoi(s); + if (signo < 0 || signo >= MAX_QUALS) + return -1; + qualify_one(signo, opt, not, -1); + 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, -1); + 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 (isdigit((unsigned char)*s)) { + int desc = atoi(s); + if (desc < 0 || desc >= MAX_QUALS) + return -1; + qualify_one(desc, opt, not, -1); + 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; + if (strcmp(s, "desc") == 0) + return TRACE_DESC; + 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++) { + qualify_one(i, opt, not, -1); + } + return; + } + for (i = 0; i < MAX_QUALS; i++) { + qualify_one(i, opt, !not, -1); + } + for (p = strtok(s, ","); p; p = strtok(NULL, ",")) { + if (opt->bitflag == QUAL_TRACE && (n = lookup_class(p)) > 0) { + for (i = 0; i < nsyscalls0; i++) + if (sysent0[i].sys_flags & n) + qualify_one(i, opt, not, 0); + +#if SUPPORTED_PERSONALITIES >= 2 + for (i = 0; i < nsyscalls1; i++) + if (sysent1[i].sys_flags & n) + qualify_one(i, opt, not, 1); +#endif /* SUPPORTED_PERSONALITIES >= 2 */ + +#if SUPPORTED_PERSONALITIES >= 3 + for (i = 0; i < nsyscalls2; i++) + if (sysent2[i].sys_flags & n) + qualify_one(i, opt, not, 2); +#endif /* SUPPORTED_PERSONALITIES >= 3 */ + + 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) || defined(__ARM_EABI__) )) + +static void +decode_subcall(tcp, subcall, nsubcalls, style) +struct tcb *tcp; +int subcall; +int nsubcalls; +enum subcall_style style; +{ + unsigned long addr, mask; + int i; + int size = personality_wordsize[current_personality]; + + 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 (size == sizeof(int)) { + unsigned int arg; + if (umove(tcp, addr, &arg) < 0) + arg = 0; + tcp->u_arg[i] = arg; + } + else if (size == sizeof(long)) { + unsigned long arg; + if (umove(tcp, addr, &arg) < 0) + arg = 0; + tcp->u_arg[i] = arg; + } + else + abort(); + addr += size; + } + 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(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. + */ + int (*func)(); + + if (tcp->scno < 0 || tcp->scno >= nsyscalls) + return 0; + + func = sysent[tcp->scno].sys_func; + + if (sys_exit == func) + return internal_exit(tcp); + + if ( sys_fork == func +#if defined(FREEBSD) || defined(LINUX) || defined(SUNOS4) + || sys_vfork == func +#endif +#ifdef LINUX + || sys_clone == func +#endif +#if UNIXWARE > 2 + || sys_rfork == func +#endif + ) + return internal_fork(tcp); + + if ( sys_execve == func +#if defined(SPARC) || defined(SPARC64) || defined(SUNOS4) + || sys_execv == func +#endif +#if UNIXWARE > 2 + || sys_rexecve == func +#endif + ) + return internal_exec(tcp); + + if ( sys_waitpid == func + || sys_wait4 == func +#if defined(SVR4) || defined(FREEBSD) || defined(SUNOS4) + || sys_wait == func +#endif +#ifdef ALPHA + || sys_osf_wait4 == func +#endif + ) + return internal_wait(tcp, 2); + +#if defined(LINUX) || defined(SVR4) + if (sys_waitid == func) + return internal_wait(tcp, 3); +#endif + + 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(BFIN) + static long r0; +#elif defined (ARM) + static struct pt_regs regs; +#elif defined (ALPHA) + static long r0; + static long a3; +#elif defined(AVR32) + static struct pt_regs regs; +#elif defined (SPARC) || defined (SPARC64) + static struct pt_regs regs; + static unsigned long trap; +#elif defined(LINUX_MIPSN32) + static long long a3; + static long long r2; +#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; +#elif defined(CRISV10) || defined(CRISV32) + static long r10; +#endif +#endif /* LINUX */ +#ifdef FREEBSD + struct reg regs; +#endif /* FREEBSD */ + +int +get_scno(struct tcb *tcp) +{ + long scno = 0; + +#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(tcp, 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(tcp, PT_PSWADDR, &pc) < 0) + return -1; + errno = 0; + opcode = ptrace(PTRACE_PEEKTEXT, tcp->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(tcp, gpr_offset[offset_reg], &tmp) < 0)) + return -1; + svc_addr += tmp; + + tmp = 0; + offset_reg = (opcode & 0x0000f000) >> 12; + if (offset_reg && (upeek(tcp, gpr_offset[offset_reg], &tmp) < 0)) + return -1; + svc_addr += tmp; + + scno = ptrace(PTRACE_PEEKTEXT, tcp->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(tcp, gpr_offset[offset_reg], &tmp) < 0)) + return -1; + + scno = (scno | tmp) & 0xff; + } + } +# elif defined (POWERPC) + if (upeek(tcp, 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(AVR32) + /* + * Read complete register set in one go. + */ + if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, ®s) < 0) + return -1; + + /* + * We only need to grab the syscall number on syscall entry. + */ + if (!(tcp->flags & TCB_INSYSCALL)) { + scno = regs.r8; + + /* Check if we return from execve. */ + if (tcp->flags & TCB_WAITEXECVE) { + tcp->flags &= ~TCB_WAITEXECVE; + return 0; + } + } +# elif defined(BFIN) + if (upeek(tcp, PT_ORIG_P0, &scno)) + return -1; +# elif defined (I386) + if (upeek(tcp, 4*ORIG_EAX, &scno) < 0) + return -1; +# elif defined (X86_64) + if (upeek(tcp, 8*ORIG_RAX, &scno) < 0) + return -1; + + if (!(tcp->flags & TCB_INSYSCALL)) { + static int currpers = -1; + long val; + int pid = tcp->pid; + + /* 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(tcp, 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(tcp, 8*RIP, &rip) < 0) + perror("upeek(RIP)"); + + /* sizeof(syscall) == sizeof(int 0x80) == 2 */ + rip -= 2; + errno = 0; + + call = ptrace(PTRACE_PEEKTEXT, pid, (char *)rip, (char *)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) { + static const char *const 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 (tcp, PT_CR_IPSR, &psr) >= 0) + ia32 = (psr & IA64_PSR_IS) != 0; + if (!(tcp->flags & TCB_INSYSCALL)) { + if (ia32) { + if (upeek(tcp, PT_R1, &scno) < 0) /* orig eax */ + return -1; + } else { + if (upeek (tcp, 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 (tcp, PT_R8, &r8) < 0) + return -1; + if (upeek (tcp, PT_R10, &r10) < 0) + return -1; + } +# elif defined (ARM) + /* + * Read complete register set in one go. + */ + if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (void *)®s) == -1) + return -1; + + /* + * We only need to grab the syscall number on syscall entry. + */ + if (regs.ARM_ip == 0) { + if (!(tcp->flags & TCB_INSYSCALL)) { + /* Check if we return from execve. */ + if (tcp->flags & TCB_WAITEXECVE) { + tcp->flags &= ~TCB_WAITEXECVE; + return 0; + } + } + + /* + * Note: we only deal with only 32-bit CPUs here. + */ + if (regs.ARM_cpsr & 0x20) { + /* + * Get the Thumb-mode system call number + */ + scno = regs.ARM_r7; + } else { + /* + * Get the ARM-mode system call number + */ + errno = 0; + scno = ptrace(PTRACE_PEEKTEXT, tcp->pid, (void *)(regs.ARM_pc - 4), NULL); + if (errno) + return -1; + + 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 (scno & 0x0f0000) { + /* + * Handle ARM specific syscall + */ + set_personality(1); + scno &= 0x0000ffff; + } else + set_personality(0); + + 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(tcp, 4*PT_ORIG_D0, &scno) < 0) + return -1; +# elif defined (LINUX_MIPSN32) + unsigned long long regs[38]; + + if (ptrace (PTRACE_GETREGS, tcp->pid, NULL, (long) ®s) < 0) + return -1; + a3 = regs[REG_A3]; + r2 = regs[REG_V0]; + + if(!(tcp->flags & TCB_INSYSCALL)) { + scno = r2; + + /* Check if we return from execve. */ + if (scno == 0 && tcp->flags & TCB_WAITEXECVE) { + tcp->flags &= ~TCB_WAITEXECVE; + return 0; + } + + if (scno < 0 || scno > nsyscalls) { + if(a3 == 0 || a3 == -1) { + if(debug) + fprintf (stderr, "stray syscall exit: v0 = %ld\n", scno); + return 0; + } + } + } +# elif defined (MIPS) + if (upeek(tcp, REG_A3, &a3) < 0) + return -1; + if(!(tcp->flags & TCB_INSYSCALL)) { + if (upeek(tcp, REG_V0, &scno) < 0) + return -1; + + /* Check if we return from execve. */ + if (scno == 0 && tcp->flags & TCB_WAITEXECVE) { + tcp->flags &= ~TCB_WAITEXECVE; + return 0; + } + + 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(tcp, REG_V0, &r2) < 0) + return -1; + } +# elif defined (ALPHA) + if (upeek(tcp, REG_A3, &a3) < 0) + return -1; + + if (!(tcp->flags & TCB_INSYSCALL)) { + if (upeek(tcp, 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(tcp, REG_R0, &r0) < 0) + return -1; + } +# elif defined (SPARC) || defined (SPARC64) + /* Everything we need is in the current register set. */ + if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)®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; +# if defined(SPARC64) + trap = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *)regs.tpc, 0); + trap >>= 32; +# else + trap = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *)regs.pc, 0); +# 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.tpc); +# else + fprintf(stderr,"syscall: unknown syscall trap %08lx %08lx\n", trap, regs.pc); +# endif + return -1; + } + + /* Extract the system call number from the registers. */ + if (trap == 0x91d02027) + scno = 156; + else + scno = regs.u_regs[U_REG_G1]; + if (scno == 0) { + scno = regs.u_regs[U_REG_O0]; + memmove (®s.u_regs[U_REG_O0], ®s.u_regs[U_REG_O1], 7*sizeof(regs.u_regs[0])); + } + } +# elif defined(HPPA) + if (upeek(tcp, 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(tcp, 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(tcp, 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; + } + } +# elif defined(CRISV10) || defined(CRISV32) + if (upeek(tcp, 4*PT_R9, &scno) < 0) + return -1; +# elif defined(TILE) + if (upeek(tcp, PTREGS_OFFSET_REG(10), &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; + } + } +# endif +#endif /* LINUX */ + +#ifdef SUNOS4 + if (upeek(tcp, uoff(u_arg[7]), &scno) < 0) + return -1; +#elif defined(SH) + /* new syscall ABI returns result in R0 */ + if (upeek(tcp, 4*REG_REG0, (long *)&r0) < 0) + return -1; +#elif defined(SH64) + /* ABI defines result returned in r9 */ + if (upeek(tcp, REG_GENERAL(9), (long *)&r9) < 0) + return -1; +#endif + +#ifdef USE_PROCFS +# ifdef HAVE_PR_SYSCALL + scno = tcp->status.PR_SYSCALL; +# else +# ifndef FREEBSD + scno = tcp->status.PR_WHAT; +# else + 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; +} + +/* Called in trace_syscall() at each syscall entry and exit. + * Returns: + * 0: "ignore this syscall", bail out of trace_syscall() silently. + * 1: ok, continue in trace_syscall(). + * other: error, trace_syscall() should print error indicator + * ("????" etc) and bail out. + */ +static int +syscall_fixup(struct tcb *tcp) +{ +#ifdef 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(tcp, 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(tcp, 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(tcp, 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(tcp, sizeof(unsigned long)*PT_CCR, &flags) < 0) + return -1; + if (upeek(tcp, sizeof(unsigned long)*PT_R3, &result) < 0) + return -1; + if (flags & SO_MASK) + result = -result; +#elif defined (M68K) + if (upeek(tcp, 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(BFIN) + if (upeek(tcp, PT_R0, &r0) < 0) + return -1; +#elif defined (HPPA) + if (upeek(tcp, PT_GR28, &r28) < 0) + return -1; +#elif defined(IA64) + if (upeek(tcp, PT_R10, &r10) < 0) + return -1; + if (upeek(tcp, 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; + } +#elif defined(CRISV10) || defined(CRISV32) + if (upeek(tcp, 4*PT_R10, &r10) < 0) + return -1; + if (r10 != -ENOSYS && !(tcp->flags & TCB_INSYSCALL)) { + if (debug) + fprintf(stderr, "stray syscall exit: r10 = %ld\n", r10); + return 0; + } +#endif +#endif /* LINUX */ + return 1; +} + +#ifdef LINUX +/* + * Check the syscall return value register value for whether it is + * a negated errno code indicating an error, or a success return value. + */ +static inline int +is_negated_errno(unsigned long int val) +{ + unsigned long int max = -(long int) nerrnos; + if (personality_wordsize[current_personality] < sizeof(val)) { + val = (unsigned int) val; + max = (unsigned int) max; + } + return val > max; +} +#endif + +static int +get_error(struct tcb *tcp) +{ + int u_error = 0; +#ifdef LINUX +# if defined(S390) || defined(S390X) + if (is_negated_errno(gpr2)) { + tcp->u_rval = -1; + u_error = -gpr2; + } + else { + tcp->u_rval = gpr2; + u_error = 0; + } +# elif defined(I386) + if (is_negated_errno(eax)) { + tcp->u_rval = -1; + u_error = -eax; + } + else { + tcp->u_rval = eax; + u_error = 0; + } +# elif defined(X86_64) + if (is_negated_errno(rax)) { + tcp->u_rval = -1; + u_error = -rax; + } + else { + tcp->u_rval = rax; + u_error = 0; + } +# elif defined(IA64) + if (ia32) { + int err; + + err = (int)r8; + if (is_negated_errno(err)) { + 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; + } + } +# elif defined(MIPS) + if (a3) { + tcp->u_rval = -1; + u_error = r2; + } else { + tcp->u_rval = r2; + u_error = 0; + } +# elif defined(POWERPC) + if (is_negated_errno(result)) { + tcp->u_rval = -1; + u_error = -result; + } + else { + tcp->u_rval = result; + u_error = 0; + } +# elif defined(M68K) + if (is_negated_errno(d0)) { + tcp->u_rval = -1; + u_error = -d0; + } + else { + tcp->u_rval = d0; + u_error = 0; + } +# elif defined(ARM) + if (is_negated_errno(regs.ARM_r0)) { + tcp->u_rval = -1; + u_error = -regs.ARM_r0; + } + else { + tcp->u_rval = regs.ARM_r0; + u_error = 0; + } +# elif defined(AVR32) + if (regs.r12 && (unsigned) -regs.r12 < nerrnos) { + tcp->u_rval = -1; + u_error = -regs.r12; + } + else { + tcp->u_rval = regs.r12; + u_error = 0; + } +# elif defined(BFIN) + if (is_negated_errno(r0)) { + tcp->u_rval = -1; + u_error = -r0; + } else { + tcp->u_rval = r0; + u_error = 0; + } +# elif defined(ALPHA) + if (a3) { + tcp->u_rval = -1; + u_error = r0; + } + else { + tcp->u_rval = r0; + u_error = 0; + } +# elif defined(SPARC) + if (regs.psr & PSR_C) { + tcp->u_rval = -1; + u_error = regs.u_regs[U_REG_O0]; + } + else { + tcp->u_rval = regs.u_regs[U_REG_O0]; + u_error = 0; + } +# elif defined(SPARC64) + if (regs.tstate & 0x1100000000UL) { + tcp->u_rval = -1; + u_error = regs.u_regs[U_REG_O0]; + } + else { + tcp->u_rval = regs.u_regs[U_REG_O0]; + u_error = 0; + } +# elif defined(HPPA) + if (is_negated_errno(r28)) { + tcp->u_rval = -1; + u_error = -r28; + } + else { + tcp->u_rval = r28; + u_error = 0; + } +# elif defined(SH) + /* interpret R0 as return value or error number */ + if (is_negated_errno(r0)) { + tcp->u_rval = -1; + u_error = -r0; + } + else { + tcp->u_rval = r0; + u_error = 0; + } +# elif defined(SH64) + /* interpret result as return value or error number */ + if (is_negated_errno(r9)) { + tcp->u_rval = -1; + u_error = -r9; + } + else { + tcp->u_rval = r9; + u_error = 0; + } +# elif defined(CRISV10) || defined(CRISV32) + if (r10 && (unsigned) -r10 < nerrnos) { + tcp->u_rval = -1; + u_error = -r10; + } + else { + tcp->u_rval = r10; + u_error = 0; + } +# elif defined(TILE) + long rval; + /* interpret result as return value or error number */ + if (upeek(tcp, PTREGS_OFFSET_REG(0), &rval) < 0) + return -1; + if (rval < 0 && rval > -nerrnos) { + tcp->u_rval = -1; + u_error = -rval; + } + else { + tcp->u_rval = rval; + u_error = 0; + } +# endif +#endif /* LINUX */ +#ifdef SUNOS4 + /* get error code from user struct */ + if (upeek(tcp, uoff(u_error), &u_error) < 0) + return -1; + u_error >>= 24; /* u_error is a char */ + + /* get system call return value */ + if (upeek(tcp, 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; +# elif defined(I386) + eax = error ? -error : rval; + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(EAX * 4), eax) < 0) + return -1; +# elif defined(X86_64) + rax = error ? -error : rval; + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(RAX * 8), rax) < 0) + return -1; +# elif defined(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; + } +# elif defined(BFIN) + r0 = error ? -error : rval; + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)PT_R0, r0) < 0) + return -1; +# elif defined(MIPS) + if (error) { + r2 = error; + a3 = -1; + } + else { + r2 = rval; + a3 = 0; + } + /* PTRACE_POKEUSER is OK even for n32 since rval is only a long. */ + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_A3), a3) < 0 || + ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_V0), r2) < 0) + return -1; +# elif defined(POWERPC) + if (upeek(tcp, 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; +# elif defined(M68K) + d0 = error ? -error : rval; + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*PT_D0), d0) < 0) + return -1; +# elif defined(ARM) + regs.ARM_r0 = error ? -error : rval; + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*0), regs.ARM_r0) < 0) + return -1; +# elif defined(AVR32) + regs.r12 = error ? -error : rval; + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)REG_R12, regs.r12) < 0) + return -1; +# elif defined(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; +# elif defined(SPARC) + if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)®s, 0) < 0) + return -1; + if (error) { + regs.psr |= PSR_C; + regs.u_regs[U_REG_O0] = error; + } + else { + regs.psr &= ~PSR_C; + regs.u_regs[U_REG_O0] = rval; + } + if (ptrace(PTRACE_SETREGS, tcp->pid, (char *)®s, 0) < 0) + return -1; +# elif defined(SPARC64) + if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)®s, 0) < 0) + return -1; + if (error) { + regs.tstate |= 0x1100000000UL; + regs.u_regs[U_REG_O0] = error; + } + else { + regs.tstate &= ~0x1100000000UL; + regs.u_regs[U_REG_O0] = rval; + } + if (ptrace(PTRACE_SETREGS, tcp->pid, (char *)®s, 0) < 0) + return -1; +# elif defined(HPPA) + r28 = error ? -error : rval; + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_GR28), r28) < 0) + return -1; +# elif defined(SH) + r0 = error ? -error : rval; + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*REG_REG0), r0) < 0) + return -1; +# elif defined(SH64) + r9 = error ? -error : rval; + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)REG_GENERAL(9), r9) < 0) + return -1; +# endif +#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(struct tcb *tcp) +{ +#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(tcp,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(tcp, REG_A0+i, &tcp->u_arg[i]) < 0) + return -1; + } + } +#elif defined (IA64) + { + if (!ia32) { + unsigned long *out0, cfm, sof, sol, i; + long rbs_end; + /* be backwards compatible with kernel < 2.4.4... */ +# ifndef PT_RBS_END +# define PT_RBS_END PT_AR_BSP +# endif + + if (upeek(tcp, PT_RBS_END, &rbs_end) < 0) + return -1; + if (upeek(tcp, PT_CFM, (long *) &cfm) < 0) + return -1; + + sof = (cfm >> 0) & 0x7f; + sol = (cfm >> 7) & 0x7f; + out0 = ia64_rse_skip_regs((unsigned long *) 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(tcp, PT_R11, (long *) &tcp->u_arg[0]) < 0 + /* ECX = out1 */ + || upeek(tcp, PT_R9, (long *) &tcp->u_arg[1]) < 0 + /* EDX = out2 */ + || upeek(tcp, PT_R10, (long *) &tcp->u_arg[2]) < 0 + /* ESI = out3 */ + || upeek(tcp, PT_R14, (long *) &tcp->u_arg[3]) < 0 + /* EDI = out4 */ + || upeek(tcp, PT_R15, (long *) &tcp->u_arg[4]) < 0 + /* EBP = out5 */ + || upeek(tcp, 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 (LINUX_MIPSN32) || defined (LINUX_MIPSN64) + /* N32 and N64 both use up to six registers. */ + { + unsigned long long regs[38]; + 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 (ptrace (PTRACE_GETREGS, tcp->pid, NULL, (long) ®s) < 0) + return -1; + + for(i = 0; i < nargs; i++) { + tcp->u_arg[i] = regs[REG_A0 + i]; +# if defined (LINUX_MIPSN32) + tcp->ext_arg[i] = regs[REG_A0 + i]; +# endif + } + } +#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(tcp, REG_SP, &sp) < 0) + return -1; + for(i = 0; i < 4; i++) { + if (upeek(tcp, 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(tcp, 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(tcp, (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] = regs.u_regs[U_REG_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(tcp, 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(AVR32) + tcp->u_nargs = sysent[tcp->scno].nargs; + tcp->u_arg[0] = regs.r12; + tcp->u_arg[1] = regs.r11; + tcp->u_arg[2] = regs.r10; + tcp->u_arg[3] = regs.r9; + tcp->u_arg[4] = regs.r5; + tcp->u_arg[5] = regs.r3; +#elif defined(BFIN) + { + int i; + int argreg[] = {PT_R0, PT_R1, PT_R2, PT_R3, PT_R4, PT_R5}; + + if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1) + tcp->u_nargs = sysent[tcp->scno].nargs; + else + tcp->u_nargs = sizeof(argreg) / sizeof(argreg[0]); + + for (i = 0; i < tcp->u_nargs; ++i) + if (upeek(tcp, argreg[i], &tcp->u_arg[i]) < 0) + return -1; + } +#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(tcp, 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(tcp, 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(tcp, argreg[current_personality][i]*8, &tcp->u_arg[i]) < 0) + return -1; + } + } +#elif defined(CRISV10) || defined(CRISV32) + { + int i; + static const int crisregs[] = { + 4*PT_ORIG_R10, 4*PT_R11, 4*PT_R12, + 4*PT_R13, 4*PT_MOF, 4*PT_SRP + }; + + if (tcp->scno >= 0 && tcp->scno < nsyscalls) + tcp->u_nargs = sysent[tcp->scno].nargs; + else + tcp->u_nargs = 0; + for (i = 0; i < tcp->u_nargs; i++) { + if (upeek(tcp, crisregs[i], &tcp->u_arg[i]) < 0) + return -1; + } + } +#elif defined(TILE) + { + 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(tcp, PTREGS_OFFSET_REG(i), &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(tcp, 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(tcp, 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; +} + +static int +trace_syscall_exiting(struct tcb *tcp) +{ + int sys_res; + struct timeval tv; + int res, scno_good; + long u_error; + + /* Measure the exit time as early as possible to avoid errors. */ + if (dtime || cflag) + gettimeofday(&tv, NULL); + + /* BTW, why we don't just memorize syscall no. on entry + * in tcp->something? + */ + scno_good = res = get_scno(tcp); + if (res == 0) + return res; + if (res == 1) + res = syscall_fixup(tcp); + if (res == 0) + return res; + if (res == 1) + res = get_error(tcp); + if (res == 0) + return res; + if (res == 1) + internal_syscall(tcp); + + if (res == 1 && 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 (scno_good != 1) + tprintf("????"); + else if (tcp->scno >= nsyscalls || tcp->scno < 0) + tprintf("syscall_%lu", tcp->scno); + else + tprintf("%s", sysent[tcp->scno].sys_name); + tprintf(" resumed> "); + } + + if (cflag) { + struct timeval t = tv; + int rc = count_syscall(tcp, &t); + if (cflag == CFLAG_ONLY_STATS) + { + tcp->flags &= ~TCB_INSYSCALL; + return rc; + } + } + + if (res != 1) { + tprintf(") "); + tabto(acolumn); + tprintf("= ? <unavailable>"); + printtrailer(); + tcp->flags &= ~TCB_INSYSCALL; + return res; + } + + 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; + } + if ((sys_res & RVAL_STR) && tcp->auxstr) + tprintf(" (%s)", tcp->auxstr); + } + 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(); + + dumpio(tcp); + if (fflush(tcp->outf) == EOF) + return -1; + tcp->flags &= ~TCB_INSYSCALL; + return 0; +} + +static int +trace_syscall_entering(struct tcb *tcp) +{ + int sys_res; + int res, scno_good; + + scno_good = res = get_scno(tcp); + if (res == 0) + return res; + if (res == 1) + res = syscall_fixup(tcp); + if (res == 0) + return res; + if (res == 1) + res = syscall_enter(tcp); + if (res == 0) + return res; + + if (res != 1) { + printleader(tcp); + tcp->flags &= ~TCB_REPRINT; + tcp_last = tcp; + if (scno_good != 1) + tprintf("????" /* anti-trigraph gap */ "("); + else if (tcp->scno >= nsyscalls || tcp->scno < 0) + tprintf("syscall_%lu(", tcp->scno); + else + tprintf("%s(", sysent[tcp->scno].sys_name); + /* + * " <unavailable>" will be added later by the code which + * detects ptrace errors. + */ + tcp->flags |= TCB_INSYSCALL; + return res; + } + + switch (known_scno(tcp)) { +#ifdef SYS_socket_subcall + case SYS_socketcall: + decode_subcall(tcp, SYS_socket_subcall, + SYS_socket_nsubcalls, deref_style); + break; +#endif +#ifdef SYS_ipc_subcall + case SYS_ipc: + decode_subcall(tcp, SYS_ipc_subcall, + SYS_ipc_nsubcalls, shift_style); + break; +#endif +#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; + 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 == CFLAG_ONLY_STATS) { + tcp->flags |= TCB_INSYSCALL; + gettimeofday(&tcp->etime, NULL); + 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 || cflag) + gettimeofday(&tcp->etime, NULL); + return sys_res; +} + +int +trace_syscall(struct tcb *tcp) +{ + return exiting(tcp) ? + trace_syscall_exiting(tcp) : trace_syscall_entering(tcp); +} + +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 pt_regs regs; + if (ptrace(PTRACE_GETREGS,tcp->pid,(char *)®s,0) < 0) + return -1; + val = regs.u_regs[U_REG_O1]; +#elif defined(SH) + if (upeek(tcp, 4*(REG_REG0+1), &val) < 0) + return -1; +#elif defined(IA64) + if (upeek(tcp, PT_R9, &val) < 0) + return -1; +#endif +#endif /* LINUX */ + +#ifdef SUNOS4 + if (upeek(tcp, 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; +} + +#ifdef SUNOS4 +/* + * 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; +} +#endif /* SUNOS4 */ + +int +is_restart_error(struct tcb *tcp) +{ +#ifdef LINUX + if (!syserror(tcp)) + return 0; + switch (tcp->u_error) { + case ERESTARTSYS: + case ERESTARTNOINTR: + case ERESTARTNOHAND: + case ERESTART_RESTARTBLOCK: + return 1; + default: + break; + } +#endif /* LINUX */ + return 0; +}
diff --git a/strace-4.5.20/syscallent.sh b/strace-4.5.20/syscallent.sh new file mode 100755 index 0000000..636cede --- /dev/null +++ b/strace-4.5.20/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$ + +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 -k2n | 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/strace-4.5.20/system.c b/strace-4.5.20/system.c new file mode 100644 index 0000000..63a64b8 --- /dev/null +++ b/strace-4.5.20/system.c
@@ -0,0 +1,2319 @@ +/* + * 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$ + */ + +#include "defs.h" + +#ifdef LINUX +#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_SILENT 32768 +#define MS_POSIXACL (1<<16) /* VFS does not apply the umask */ +#define MS_UNBINDABLE (1<<17) /* change to unbindable */ +#define MS_PRIVATE (1<<18) /* change to private */ +#define MS_SLAVE (1<<19) /* change to slave */ +#define MS_SHARED (1<<20) /* change to shared */ +#define MS_ACTIVE (1<<30) +#define MS_NOUSER (1<<31) +#define MS_MGC_VAL 0xc0ed0000 /* Magic flag number */ +#define MS_MGC_MSK 0xffff0000 /* Magic flag mask */ + +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> + +#include <sys/syscall.h> + +#ifdef HAVE_LINUX_CAPABILITY_H +#include <linux/capability.h> +#endif + +#ifdef HAVE_ASM_CACHECTL_H +#include <asm/cachectl.h> +#endif + +#ifdef HAVE_LINUX_USTNAME_H +#include <linux/utsname.h> +#endif + +#ifdef HAVE_ASM_SYSMIPS_H +#include <asm/sysmips.h> +#endif + +#include <linux/sysctl.h> + +static const struct xlat mount_flags[] = { + { MS_MGC_VAL, "MS_MGC_VAL" }, + { 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_SILENT, "MS_SILENT" }, + { MS_POSIXACL, "MS_POSIXACL" }, + { MS_UNBINDABLE,"MS_UNBINDABLE" }, + { MS_PRIVATE, "MS_PRIVATE" }, + { MS_SLAVE, "MS_SLAVE" }, + { MS_SHARED, "MS_SHARED" }, + { MS_ACTIVE, "MS_ACTIVE" }, + { MS_NOUSER, "MS_NOUSER" }, + { 0, NULL }, +}; + +int +sys_mount(struct tcb *tcp) +{ + if (entering(tcp)) { + int ignore_type = 0, ignore_data = 0; + unsigned long flags = tcp->u_arg[3]; + + /* Discard magic */ + if ((flags & MS_MGC_MSK) == MS_MGC_VAL) + flags &= ~MS_MGC_MSK; + + if (flags & MS_REMOUNT) + ignore_type = 1; + else if (flags & (MS_BIND | MS_MOVE)) + ignore_type = ignore_data = 1; + + printpath(tcp, tcp->u_arg[0]); + tprintf(", "); + + printpath(tcp, tcp->u_arg[1]); + tprintf(", "); + + if (ignore_type && tcp->u_arg[2]) + tprintf("%#lx", tcp->u_arg[2]); + else + printstr(tcp, tcp->u_arg[2], -1); + tprintf(", "); + + printflags(mount_flags, tcp->u_arg[3], "MS_???"); + tprintf(", "); + + if (ignore_data && tcp->u_arg[4]) + tprintf("%#lx", tcp->u_arg[4]); + else + printstr(tcp, tcp->u_arg[4], -1); + } + return 0; +} + +#define MNT_FORCE 0x00000001 /* Attempt to forcibily umount */ +#define MNT_DETACH 0x00000002 /* Just detach from the tree */ +#define MNT_EXPIRE 0x00000004 /* Mark for expiry */ + +static const struct xlat umount_flags[] = { + { MNT_FORCE, "MNT_FORCE" }, + { MNT_DETACH, "MNT_DETACH" }, + { MNT_EXPIRE, "MNT_EXPIRE" }, + { 0, NULL }, +}; + +int +sys_umount2(struct tcb *tcp) +{ + if (entering(tcp)) { + printstr(tcp, tcp->u_arg[0], -1); + tprintf(", "); + printflags(umount_flags, tcp->u_arg[1], "MNT_???"); + } + 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 */ + +#ifdef BFIN + +#include <bfin_sram.h> + +static const struct xlat sram_alloc_flags[] = { + { L1_INST_SRAM, "L1_INST_SRAM" }, + { L1_DATA_A_SRAM, "L1_DATA_A_SRAM" }, + { L1_DATA_B_SRAM, "L1_DATA_B_SRAM" }, + { L1_DATA_SRAM, "L1_DATA_SRAM" }, + { L2_SRAM, "L2_SRAM" }, + { 0, NULL }, +}; + +int +sys_sram_alloc(struct tcb *tcp) +{ + if (entering(tcp)) { + /* size */ + tprintf("%lu, ", tcp->u_arg[0]); + /* flags */ + printxval(sram_alloc_flags, tcp->u_arg[1], "???_SRAM"); + } + return 1; +} + +#endif + +#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"}, +#ifdef CAP_MKNOD + { 1<<CAP_MKNOD, "CAP_MKNOD" }, +#endif +#ifdef CAP_LEASE + { 1<<CAP_LEASE, "CAP_LEASE" }, +#endif +#ifdef CAP_AUDIT_WRITE + { 1<<CAP_AUDIT_WRITE, "CAP_AUDIT_WRITE"}, +#endif +#ifdef CAP_AUDIT_CONTROL + { 1<<CAP_AUDIT_CONTROL, "CAP_AUDIT_CONTROL"}, +#endif +#ifdef CAP_SETFCAP + { 1<<CAP_SETFCAP, "CAP_SETFCAP" }, +#endif + { 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 +/* Linux 2.6.18+ headers removed CTL_PROC enum. */ +# define CTL_PROC 4 +# define CTL_CPU 10 /* older headers lack */ +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" }, + { CTL_BUS, "CTL_BUS" }, + { CTL_ABI, "CTL_ABI" }, + { CTL_CPU, "CTL_CPU" }, + { 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 = info.nlen; + if (abbrev(tcp) && max_cnt > max_strlen) + max_cnt = max_strlen; + 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/strace-4.5.20/term.c b/strace-4.5.20/term.c new file mode 100644 index 0000000..23d2317 --- /dev/null +++ b/strace-4.5.20/term.c
@@ -0,0 +1,450 @@ +/* + * 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$ + */ + +#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(struct tcb *tcp, long code, long 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, &i) < 0) + return 0; + tprintf(", ["); + printflags(modem_flags, i, "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_int(tcp, arg, "%d"); + return 1; + + /* 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/strace-4.5.20/time.c b/strace-4.5.20/time.c new file mode 100644 index 0000000..01241d2 --- /dev/null +++ b/strace-4.5.20/time.c
@@ -0,0 +1,1022 @@ +/* + * 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$ + */ + +#include "defs.h" + +#ifdef LINUX +#include <linux/version.h> +#include <sys/timex.h> +#include <linux/ioctl.h> +#include <linux/rtc.h> + +#ifndef UTIME_NOW +#define UTIME_NOW ((1l << 30) - 1l) +#endif +#ifndef UTIME_OMIT +#define UTIME_OMIT ((1l << 30) - 2l) +#endif +#endif /* LINUX */ + +struct timeval32 +{ + u_int32_t tv_sec, tv_usec; +}; + +static void +tprint_timeval32(struct tcb *tcp, const struct timeval32 *tv) +{ + tprintf("{%u, %u}", tv->tv_sec, tv->tv_usec); +} + +static void +tprint_timeval(struct tcb *tcp, const struct timeval *tv) +{ + tprintf("{%lu, %lu}", + (unsigned long) tv->tv_sec, (unsigned long) tv->tv_usec); +} + +void +printtv_bitness(struct tcb *tcp, long addr, enum bitness_t bitness, int special) +{ + if (addr == 0) + tprintf("NULL"); + else if (!verbose(tcp)) + tprintf("%#lx", addr); + else { + int rc; + + if (bitness == BITNESS_32 +#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1 + || personality_wordsize[current_personality] == 4 +#endif + ) + { + struct timeval32 tv; + + if ((rc = umove(tcp, addr, &tv)) >= 0) { + if (special && tv.tv_sec == 0 && + tv.tv_usec == UTIME_NOW) + tprintf("UTIME_NOW"); + else if (special && tv.tv_sec == 0 && + tv.tv_usec == UTIME_OMIT) + tprintf("UTIME_OMIT"); + else + tprint_timeval32(tcp, &tv); + } + } else { + struct timeval tv; + + if ((rc = umove(tcp, addr, &tv)) >= 0) { + if (special && tv.tv_sec == 0 && + tv.tv_usec == UTIME_NOW) + tprintf("UTIME_NOW"); + else if (special && tv.tv_sec == 0 && + tv.tv_usec == UTIME_OMIT) + tprintf("UTIME_OMIT"); + else + tprint_timeval(tcp, &tv); + } + } + if (rc < 0) + tprintf("{...}"); + } +} + +void +sprinttv(struct tcb *tcp, long addr, enum bitness_t bitness, char *buf) +{ + if (addr == 0) + strcpy(buf, "NULL"); + else if (!verbose(tcp)) + sprintf(buf, "%#lx", addr); + else { + int rc; + + if (bitness == BITNESS_32 +#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1 + || personality_wordsize[current_personality] == 4 +#endif + ) + { + struct timeval32 tv; + + if ((rc = umove(tcp, addr, &tv)) >= 0) + sprintf(buf, "{%u, %u}", + tv.tv_sec, tv.tv_usec); + } else { + struct timeval tv; + + if ((rc = umove(tcp, addr, &tv)) >= 0) + sprintf(buf, "{%lu, %lu}", + (unsigned long) tv.tv_sec, + (unsigned long) tv.tv_usec); + } + if (rc < 0) + strcpy(buf, "{...}"); + } +} + +void print_timespec(struct tcb *tcp, long addr) +{ + if (addr == 0) + tprintf("NULL"); + else if (!verbose(tcp)) + tprintf("%#lx", addr); + else { + int rc; + +#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1 + if (personality_wordsize[current_personality] == 4) { + struct timeval32 tv; + + if ((rc = umove(tcp, addr, &tv)) >= 0) + tprintf("{%u, %u}", + tv.tv_sec, tv.tv_usec); + } else +#endif + { + struct timespec ts; + + if ((rc = umove(tcp, addr, &ts)) >= 0) + tprintf("{%lu, %lu}", + (unsigned long) ts.tv_sec, + (unsigned long) ts.tv_nsec); + } + if (rc < 0) + tprintf("{...}"); + } +} + +void sprint_timespec(char *buf, struct tcb *tcp, long addr) +{ + if (addr == 0) + strcpy(buf, "NULL"); + else if (!verbose(tcp)) + sprintf(buf, "%#lx", addr); + else { + int rc; + +#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1 + if (personality_wordsize[current_personality] == 4) { + struct timeval32 tv; + + if ((rc = umove(tcp, addr, &tv)) >= 0) + sprintf(buf, "{%u, %u}", + tv.tv_sec, tv.tv_usec); + } else +#endif + { + struct timespec ts; + + if ((rc = umove(tcp, addr, &ts)) >= 0) + sprintf(buf, "{%lu, %lu}", + (unsigned long) ts.tv_sec, + (unsigned long) ts.tv_nsec); + } + if (rc < 0) + strcpy(buf, "{...}"); + } +} + +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; + } + printtv_bitness(tcp, tcp->u_arg[0], BITNESS_32, 0); +#ifndef SVR4 + tprintf(", "); + printtv_bitness(tcp, tcp->u_arg[1], BITNESS_32, 0); +#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)) { + printtv_bitness(tcp, tcp->u_arg[0], BITNESS_32, 0); +#ifndef SVR4 + tprintf(", "); + printtv_bitness(tcp, tcp->u_arg[1], BITNESS_32, 0); +#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; +} + +int +sys_nanosleep(struct tcb *tcp) +{ + if (entering(tcp)) { + print_timespec(tcp, tcp->u_arg[0]); + tprintf(", "); + } else { + if (!tcp->u_arg[1] || is_restart_error(tcp)) + print_timespec(tcp, tcp->u_arg[1]); + else + tprintf("%#lx", 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_bitness(struct tcb *tcp, long addr, enum bitness_t bitness) +{ + if (addr == 0) + tprintf("NULL"); + else if (!verbose(tcp)) + tprintf("%#lx", addr); + else { + int rc; + + if (bitness == BITNESS_32 +#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1 + || personality_wordsize[current_personality] == 4 +#endif + ) + { + struct { + struct timeval32 it_interval, it_value; + } itv; + + if ((rc = umove(tcp, addr, &itv)) >= 0) { + tprintf("{it_interval="); + tprint_timeval32(tcp, &itv.it_interval); + tprintf(", it_value="); + tprint_timeval32(tcp, &itv.it_value); + tprintf("}"); + } + } else { + struct itimerval itv; + + if ((rc = umove(tcp, addr, &itv)) >= 0) { + tprintf("{it_interval="); + tprint_timeval(tcp, &itv.it_interval); + tprintf(", it_value="); + tprint_timeval(tcp, &itv.it_value); + tprintf("}"); + } + } + if (rc < 0) + tprintf("{...}"); + } +} + +#define printitv(tcp, addr) \ + printitv_bitness((tcp), (addr), BITNESS_CURRENT) + +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 + printitv_bitness(tcp, tcp->u_arg[1], BITNESS_32); + } + 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(", "); + printitv_bitness(tcp, tcp->u_arg[1], BITNESS_32); + tprintf(", "); + } else { + if (syserror(tcp)) + tprintf("%#lx", tcp->u_arg[2]); + else + printitv_bitness(tcp, tcp->u_arg[2], BITNESS_32); + } + return 0; +} +#endif + +#ifdef LINUX + +static const struct xlat adjtimex_modes[] = { + { 0, "0" }, +#ifdef ADJ_OFFSET + { ADJ_OFFSET, "ADJ_OFFSET" }, +#endif +#ifdef ADJ_FREQUENCY + { ADJ_FREQUENCY, "ADJ_FREQUENCY" }, +#endif +#ifdef ADJ_MAXERROR + { ADJ_MAXERROR, "ADJ_MAXERROR" }, +#endif +#ifdef ADJ_ESTERROR + { ADJ_ESTERROR, "ADJ_ESTERROR" }, +#endif +#ifdef ADJ_STATUS + { ADJ_STATUS, "ADJ_STATUS" }, +#endif +#ifdef ADJ_TIMECONST + { ADJ_TIMECONST, "ADJ_TIMECONST" }, +#endif +#ifdef ADJ_TICK + { ADJ_TICK, "ADJ_TICK" }, +#endif +#ifdef ADJ_OFFSET_SINGLESHOT + { ADJ_OFFSET_SINGLESHOT, "ADJ_OFFSET_SINGLESHOT" }, +#endif + { 0, NULL } +}; + +static const struct xlat adjtimex_status[] = { +#ifdef STA_PLL + { STA_PLL, "STA_PLL" }, +#endif +#ifdef STA_PPSFREQ + { STA_PPSFREQ, "STA_PPSFREQ" }, +#endif +#ifdef STA_PPSTIME + { STA_PPSTIME, "STA_PPSTIME" }, +#endif +#ifdef STA_FLL + { STA_FLL, "STA_FLL" }, +#endif +#ifdef STA_INS + { STA_INS, "STA_INS" }, +#endif +#ifdef STA_DEL + { STA_DEL, "STA_DEL" }, +#endif +#ifdef STA_UNSYNC + { STA_UNSYNC, "STA_UNSYNC" }, +#endif +#ifdef STA_FREQHOLD + { STA_FREQHOLD, "STA_FREQHOLD" }, +#endif +#ifdef STA_PPSSIGNAL + { STA_PPSSIGNAL, "STA_PPSSIGNAL" }, +#endif +#ifdef STA_PPSJITTER + { STA_PPSJITTER, "STA_PPSJITTER" }, +#endif +#ifdef STA_PPSWANDER + { STA_PPSWANDER, "STA_PPSWANDER" }, +#endif +#ifdef STA_PPSERROR + { STA_PPSERROR, "STA_PPSERROR" }, +#endif +#ifdef STA_CLOCKERR + { STA_CLOCKERR, "STA_CLOCKERR" }, +#endif + { 0, NULL } +}; + +static const struct xlat adjtimex_state[] = { +#ifdef TIME_OK + { TIME_OK, "TIME_OK" }, +#endif +#ifdef TIME_INS + { TIME_INS, "TIME_INS" }, +#endif +#ifdef TIME_DEL + { TIME_DEL, "TIME_DEL" }, +#endif +#ifdef TIME_OOP + { TIME_OOP, "TIME_OOP" }, +#endif +#ifdef TIME_WAIT + { TIME_WAIT, "TIME_WAIT" }, +#endif +#ifdef TIME_ERROR + { TIME_ERROR, "TIME_ERROR" }, +#endif + { 0, NULL } +}; + +#if SUPPORTED_PERSONALITIES > 1 +static int +tprint_timex32(struct tcb *tcp, long addr) +{ + struct { + unsigned int modes; + int offset; + int freq; + int maxerror; + int esterror; + int status; + int constant; + int precision; + int tolerance; + struct timeval32 time; + int tick; + int ppsfreq; + int jitter; + int shift; + int stabil; + int jitcnt; + int calcnt; + int errcnt; + int stbcnt; + } tx; + + if (umove(tcp, addr, &tx) < 0) + return -1; + + tprintf("{modes="); + printflags(adjtimex_modes, tx.modes, "ADJ_???"); + tprintf(", offset=%d, freq=%d, maxerror=%d, ", + tx.offset, tx.freq, tx.maxerror); + tprintf("esterror=%u, status=", tx.esterror); + printflags(adjtimex_status, tx.status, "STA_???"); + tprintf(", constant=%d, precision=%u, ", + tx.constant, tx.precision); + tprintf("tolerance=%d, time=", tx.tolerance); + tprint_timeval32(tcp, &tx.time); + tprintf(", tick=%d, ppsfreq=%d, jitter=%d", + tx.tick, tx.ppsfreq, tx.jitter); + tprintf(", shift=%d, stabil=%d, jitcnt=%d", + tx.shift, tx.stabil, tx.jitcnt); + tprintf(", calcnt=%d, errcnt=%d, stbcnt=%d", + tx.calcnt, tx.errcnt, tx.stbcnt); + tprintf("}"); + return 0; +} +#endif /* SUPPORTED_PERSONALITIES > 1 */ + +static int +tprint_timex(struct tcb *tcp, long addr) +{ + struct timex tx; + +#if SUPPORTED_PERSONALITIES > 1 + if (personality_wordsize[current_personality] == 4) + return tprint_timex32(tcp, addr); +#endif + if (umove(tcp, addr, &tx) < 0) + return -1; + +#if LINUX_VERSION_CODE < 66332 + tprintf("{mode=%d, offset=%ld, frequency=%ld, ", + tx.mode, tx.offset, tx.frequency); + tprintf("maxerror=%ld, esterror=%lu, status=%u, ", + tx.maxerror, tx.esterror, tx.status); + tprintf("time_constant=%ld, precision=%lu, ", + tx.time_constant, tx.precision); + tprintf("tolerance=%ld, time=", tx.tolerance); + tprint_timeval(tcp, &tx.time); +#else + tprintf("{modes="); + printflags(adjtimex_modes, tx.modes, "ADJ_???"); + tprintf(", offset=%ld, freq=%ld, maxerror=%ld, ", + tx.offset, tx.freq, tx.maxerror); + tprintf("esterror=%lu, status=", tx.esterror); + printflags(adjtimex_status, tx.status, "STA_???"); + tprintf(", constant=%ld, precision=%lu, ", + tx.constant, tx.precision); + tprintf("tolerance=%ld, time=", tx.tolerance); + tprint_timeval(tcp, &tx.time); + tprintf(", tick=%ld, ppsfreq=%ld, jitter=%ld", + tx.tick, tx.ppsfreq, tx.jitter); + tprintf(", shift=%d, stabil=%ld, jitcnt=%ld", + tx.shift, tx.stabil, tx.jitcnt); + tprintf(", calcnt=%ld, errcnt=%ld, stbcnt=%ld", + tx.calcnt, tx.errcnt, tx.stbcnt); +#endif + tprintf("}"); + return 0; +} + +int +sys_adjtimex(struct tcb *tcp) +{ + 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 (tprint_timex(tcp, tcp->u_arg[0]) < 0) + tprintf("{...}"); + if (syserror(tcp)) + return 0; + tcp->auxstr = xlookup(adjtimex_state, tcp->u_rval); + if (tcp->auxstr) + return RVAL_STR; + } + 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 } +}; + +#if SUPPORTED_PERSONALITIES > 1 +static void +printsigevent32(struct tcb *tcp, long arg) +{ + struct { + int sigev_value; + int sigev_signo; + int sigev_notify; + + union { + int tid; + struct { + int function, attribute; + } thread; + } un; + } sev; + + if (umove(tcp, arg, &sev) < 0) + tprintf("{...}"); + else { + tprintf("{%#x, ", sev.sigev_value); + 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) + tprintf("{%d}", sev.un.tid); + else if (sev.sigev_notify == SIGEV_THREAD) + tprintf("{%#x, %#x}", + sev.un.thread.function, + sev.un.thread.attribute); + else + tprintf("{...}"); + tprintf("}"); + } +} +#endif + +void +printsigevent(struct tcb *tcp, long arg) +{ + struct sigevent sev; + +#if SUPPORTED_PERSONALITIES > 1 + if (personality_wordsize[current_personality] == 4) + { + printsigevent32(tcp, arg); + return; + } +#endif + 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 { + void *p; + + if (syserror(tcp) || umove(tcp, tcp->u_arg[2], &p) < 0) + tprintf("%#lx", tcp->u_arg[2]); + else + 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; +} + +#ifndef TFD_TIMER_ABSTIME +#define TFD_TIMER_ABSTIME (1 << 0) +#endif + +static const struct xlat timerfdflags[] = { + { TFD_TIMER_ABSTIME, "TFD_TIMER_ABSTIME" }, + { 0, NULL } +}; + +int +sys_timerfd(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) { + /* It does not matter that the kernel uses itimerspec. */ + tprintf("%ld, ", tcp->u_arg[0]); + printxval(clocknames, tcp->u_arg[1], "CLOCK_???"); + tprintf(", "); + printflags(timerfdflags, tcp->u_arg[2], "TFD_???"); + tprintf(", "); + printitv(tcp, tcp->u_arg[3]); + } + return 0; +} + +int +sys_timerfd_create(struct tcb *tcp) +{ + if (entering(tcp)) { + printxval(clocknames, tcp->u_arg[0], "CLOCK_???"); + tprintf(", "); + printflags(timerfdflags, tcp->u_arg[1], "TFD_???"); + } + return 0; +} + +int +sys_timerfd_settime(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld, ", tcp->u_arg[0]); + printflags(timerfdflags, tcp->u_arg[1], "TFD_???"); + tprintf(", "); + printitv(tcp, tcp->u_arg[2]); + tprintf(", "); + printitv(tcp, tcp->u_arg[3]); + } + return 0; +} + +int +sys_timerfd_gettime(struct tcb *tcp) +{ + if (entering(tcp)) { + tprintf("%ld, ", tcp->u_arg[0]); + tprintf(", "); + printitv(tcp, tcp->u_arg[1]); + } + return 0; +} + +#endif /* LINUX */
diff --git a/strace-4.5.20/util.c b/strace-4.5.20/util.c new file mode 100644 index 0000000..bd12c0f --- /dev/null +++ b/strace-4.5.20/util.c
@@ -0,0 +1,1773 @@ +/* + * 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$ + */ + +#include "defs.h" + +#include <signal.h> +#include <sys/syscall.h> +#include <sys/user.h> +#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) && defined (SPARC64) +# undef PTRACE_GETREGS +# define PTRACE_GETREGS PTRACE_GETREGS64 +# undef PTRACE_SETREGS +# define PTRACE_SETREGS PTRACE_SETREGS64 +#endif + +/* macros */ +#ifndef MAX +#define MAX(a,b) (((a) > (b)) ? (a) : (b)) +#endif +#ifndef MIN +#define MIN(a,b) (((a) < (b)) ? (a) : (b)) +#endif + +int +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 + tv->tv_usec / 1000000; + tv->tv_usec %= 1000000; +} + +const char * +xlookup(const struct xlat *xlat, int val) +{ + for (; xlat->str != NULL; xlat++) + if (xlat->val == val) + return xlat->str; + return NULL; +} + +/* + * Generic ptrace wrapper which tracks ESRCH errors + * by setting tcp->ptrace_errno to ESRCH. + * + * We assume that ESRCH indicates likely process death (SIGKILL?), + * modulo bugs where process somehow ended up not stopped. + * Unfortunately kernel uses ESRCH for that case too. Oh well. + * + * Currently used by upeek() only. + * TODO: use this in all other ptrace() calls while decoding. + */ +long +do_ptrace(int request, struct tcb *tcp, void *addr, void *data) +{ + long l; + + errno = 0; + l = ptrace(request, tcp->pid, addr, (long) data); + /* Non-ESRCH errors might be our invalid reg/mem accesses, + * we do not record them. */ + if (errno == ESRCH) + tcp->ptrace_errno = ESRCH; + return l; +} + +/* + * Used when we want to unblock stopped traced process. + * Should be only used with PTRACE_CONT, PTRACE_DETACH and PTRACE_SYSCALL. + * Returns 0 on success or if error was ESRCH + * (presumably process was killed while we talk to it). + * Otherwise prints error message and returns -1. + */ +int +ptrace_restart(int op, struct tcb *tcp, int sig) +{ + int err; + const char *msg; + + errno = 0; + ptrace(op, tcp->pid, (void *) 1, (long) sig); + err = errno; + if (!err || err == ESRCH) + return 0; + + tcp->ptrace_errno = err; + msg = "SYSCALL"; + if (op == PTRACE_CONT) + msg = "CONT"; + if (op == PTRACE_DETACH) + msg = "DETACH"; + fprintf(stderr, "strace: ptrace(PTRACE_%s,1,%d): %s\n", + msg, sig, strerror(err)); + return -1; +} + +/* + * Print entry in struct xlat table, if there. + */ +void +printxval(const struct xlat *xlat, int val, const char *dflt) +{ + const char *str = xlookup(xlat, val); + + if (str) + tprintf("%s", str); + else + tprintf("%#x /* %s */", val, dflt); +} + +#if HAVE_LONG_LONG +/* + * Print 64bit argument at position llarg and return the index of the next + * argument. + */ +int +printllval(struct tcb *tcp, const char *format, int llarg) +{ +# if defined(FREEBSD) \ + || (defined(LINUX) && defined(POWERPC) && !defined(__powerpc64__)) \ + || defined (LINUX_MIPSO32) + /* Align 64bit argument to 64bit boundary. */ + if (llarg % 2) llarg++; +# endif +# if defined LINUX && defined X86_64 + if (current_personality == 0) { + tprintf(format, tcp->u_arg[llarg]); + llarg++; + } else { + tprintf(format, LONG_LONG(tcp->u_arg[llarg], tcp->u_arg[llarg + 1])); + llarg += 2; + } +# elif defined IA64 || defined ALPHA || (defined POWERPC && defined __powerpc64__) + tprintf(format, tcp->u_arg[llarg]); + llarg++; +# elif defined LINUX_MIPSN32 + tprintf(format, tcp->ext_arg[llarg]); + llarg++; +# else + tprintf(format, LONG_LONG(tcp->u_arg[llarg], tcp->u_arg[llarg + 1])); + llarg += 2; +# endif + return llarg; +} +#endif + +/* + * 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; +} + +/* + * Interpret `xlat' as an array of flags/ + * Print to static string the entries whose bits are on in `flags' + * Return static string. + */ +const char * +sprintflags(const char *prefix, const struct xlat *xlat, int flags) +{ + static char outstr[1024]; + int found = 0; + + strcpy(outstr, prefix); + + for (; xlat->str; xlat++) { + if ((flags & xlat->val) == xlat->val) { + if (found) + strcat(outstr, "|"); + strcat(outstr, xlat->str); + flags &= ~xlat->val; + found = 1; + } + } + if (flags) { + if (found) + strcat(outstr, "|"); + sprintf(outstr + strlen(outstr), "%#x", flags); + } + + return outstr; +} + +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 +printnum_int(tcp, addr, fmt) +struct tcb *tcp; +long addr; +char *fmt; +{ + int 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]; + +/* + * Quote string `instr' of length `size' + * Write up to (3 + `size' * 4) bytes to `outstr' buffer. + * If `len' < 0, treat `instr' as a NUL-terminated string + * and quote at most (`size' - 1) bytes. + */ +static int +string_quote(const char *instr, char *outstr, int len, int size) +{ + const unsigned char *ustr = (const unsigned char *) instr; + char *s = outstr; + int usehex = 0, c, i; + + if (xflag > 1) + usehex = 1; + else if (xflag) { + /* Check for presence of symbol which require + to hex-quote the whole string. */ + for (i = 0; i < size; ++i) { + c = ustr[i]; + /* Check for NUL-terminated string. */ + if (len < 0) { + if (c == '\0') + break; + /* Quote at most size - 1 bytes. */ + if (i == size - 1) + continue; + } + if (!isprint(c) && !isspace(c)) { + usehex = 1; + break; + } + } + } + + *s++ = '\"'; + + if (usehex) { + /* Hex-quote the whole string. */ + for (i = 0; i < size; ++i) { + c = ustr[i]; + /* Check for NUL-terminated string. */ + if (len < 0) { + if (c == '\0') + break; + /* Quote at most size - 1 bytes. */ + if (i == size - 1) + continue; + } + sprintf(s, "\\x%02x", c); + s += 4; + } + } else { + for (i = 0; i < size; ++i) { + c = ustr[i]; + /* Check for NUL-terminated string. */ + if (len < 0) { + if (c == '\0') + break; + /* Quote at most size - 1 bytes. */ + if (i == size - 1) + continue; + } + switch (c) { + 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 + 1 < size + && isdigit(ustr[i + 1])) { + sprintf(s, "\\%03o", c); + s += 4; + } else { + sprintf(s, "\\%o", c); + s += strlen(s); + } + break; + } + } + } + + *s++ = '\"'; + *s = '\0'; + + /* Return nonzero if the string was unterminated. */ + return i == size; +} + +/* + * Print path string specified by address `addr' and length `n'. + * If path length exceeds `n', append `...' to the output. + */ +void +printpathn(struct tcb *tcp, long addr, int n) +{ + if (!addr) { + tprintf("NULL"); + return; + } + + /* Cap path length to the path buffer size, + and NUL-terminate the buffer. */ + if (n > sizeof path - 1) + n = sizeof path - 1; + path[n] = '\0'; + + /* Fetch one byte more to find out whether path length > n. */ + if (umovestr(tcp, addr, n + 1, path) < 0) + tprintf("%#lx", addr); + else { + static char outstr[4*(sizeof path - 1) + sizeof "\"...\""]; + int trunc = (path[n] != '\0'); + + if (trunc) + path[n] = '\0'; + (void) string_quote(path, outstr, -1, n + 1); + if (trunc) + strcat(outstr, "..."); + tprintf("%s", outstr); + } +} + +void +printpath(struct tcb *tcp, long addr) +{ + printpathn(tcp, addr, sizeof path - 1); +} + +/* + * Print string specified by address `addr' and length `len'. + * If `len' < 0, treat the string as a NUL-terminated string. + * If string length exceeds `max_strlen', append `...' to the output. + */ +void +printstr(struct tcb *tcp, long addr, int len) +{ + static char *str = NULL; + static char *outstr; + int size; + + if (!addr) { + tprintf("NULL"); + return; + } + /* Allocate static buffers if they are not allocated yet. */ + if (!str) + str = malloc(max_strlen + 1); + if (!outstr) + outstr = malloc(4 * max_strlen + sizeof "\"...\""); + if (!str || !outstr) { + fprintf(stderr, "out of memory\n"); + tprintf("%#lx", addr); + return; + } + + if (len < 0) { + /* + * Treat as a NUL-terminated string: fetch one byte more + * because string_quote() quotes one byte less. + */ + size = max_strlen + 1; + str[max_strlen] = '\0'; + if (umovestr(tcp, addr, size, str) < 0) { + tprintf("%#lx", addr); + return; + } + } + else { + size = MIN(len, max_strlen); + if (umoven(tcp, addr, size, str) < 0) { + tprintf("%#lx", addr); + return; + } + } + + if (string_quote(str, outstr, len, size) && + (len < 0 || len > max_strlen)) + strcat(outstr, "..."); + + tprintf("%s", outstr); +} + +#if HAVE_SYS_UIO_H +void +dumpiov(tcp, len, addr) +struct tcb * tcp; +int len; +long addr; +{ +#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1 + union { + struct { u_int32_t base; u_int32_t len; } *iov32; + struct { u_int64_t base; u_int64_t len; } *iov64; + } iovu; +#define iov iovu.iov64 +#define sizeof_iov \ + (personality_wordsize[current_personality] == 4 \ + ? sizeof(*iovu.iov32) : sizeof(*iovu.iov64)) +#define iov_iov_base(i) \ + (personality_wordsize[current_personality] == 4 \ + ? (u_int64_t) iovu.iov32[i].base : iovu.iov64[i].base) +#define iov_iov_len(i) \ + (personality_wordsize[current_personality] == 4 \ + ? (u_int64_t) iovu.iov32[i].len : iovu.iov64[i].len) +#else + struct iovec *iov; +#define sizeof_iov sizeof(*iov) +#define iov_iov_base(i) iov[i].iov_base +#define iov_iov_len(i) iov[i].iov_len +#endif + int i; + unsigned long size; + + size = sizeof_iov * (unsigned long) len; + if (size / sizeof_iov != len + || (iov = 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_iov_len(i), i); + dumpstr(tcp, (long) iov_iov_base(i), + iov_iov_len(i)); + } + } + free((char *) iov); +#undef sizeof_iov +#undef iov_iov_base +#undef iov_iov_len +#undef 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(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. */ + if (addr != 0 && errno != EIO && errno != ESRCH) + 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 && errno != EIO && errno != ESRCH) + 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; + 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) { + if (errno != ESRCH) { + perror("umoven: ptrace(PTRACE_READDATA, ...)"); + abort(); + } + return -1; + } + len -= n; + addr += n; + laddr += n; + } +#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(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; + } + if (addr != 0 && errno != EIO && errno != ESRCH) + 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; + } + if (addr != 0 && errno != EIO && errno != ESRCH) + 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; +{ + 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; + } + 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(tcp, off, res) +struct tcb *tcp; +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) { + 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 = do_ptrace(PTRACE_PEEKUSER, tcp, (char *) off, 0); + if (val == -1 && errno) { + if (errno != ESRCH) { + char buf[60]; + sprintf(buf,"upeek: ptrace(PTRACE_PEEKUSER,%d,%lu,0)", tcp->pid, off); + perror(buf); + } + return -1; + } + *res = val; + return 0; +} + +#endif /* !USE_PROCFS */ + +void +printcall(struct tcb *tcp) +{ +#define PRINTBADPC tprintf(sizeof(long) == 4 ? "[????????] " : \ + sizeof(long) == 8 ? "[????????????????] " : \ + NULL /* crash */) + +#ifdef LINUX +# ifdef I386 + long eip; + + if (upeek(tcp, 4*EIP, &eip) < 0) { + PRINTBADPC; + return; + } + tprintf("[%08lx] ", eip); + +# elif defined(S390) || defined(S390X) + long psw; + if(upeek(tcp,PT_PSWADDR,&psw) < 0) { + PRINTBADPC; + return; + } +# ifdef S390 + tprintf("[%08lx] ", psw); +# elif S390X + tprintf("[%16lx] ", psw); +# endif + +# elif defined(X86_64) + long rip; + + if (upeek(tcp, 8*RIP, &rip) < 0) { + PRINTBADPC; + return; + } + tprintf("[%16lx] ", rip); +# elif defined(IA64) + long ip; + + if (upeek(tcp, PT_B0, &ip) < 0) { + PRINTBADPC; + return; + } + tprintf("[%08lx] ", ip); +# elif defined(POWERPC) + long pc; + + if (upeek(tcp, sizeof(unsigned long)*PT_NIP, &pc) < 0) { + tprintf ("[????????] "); + return; + } + tprintf("[%08lx] ", pc); +# elif defined(M68K) + long pc; + + if (upeek(tcp, 4*PT_PC, &pc) < 0) { + tprintf ("[????????] "); + return; + } + tprintf("[%08lx] ", pc); +# elif defined(ALPHA) + long pc; + + if (upeek(tcp, REG_PC, &pc) < 0) { + tprintf ("[????????????????] "); + return; + } + tprintf("[%08lx] ", pc); +# elif defined(SPARC) || defined(SPARC64) + struct pt_regs regs; + if (ptrace(PTRACE_GETREGS,tcp->pid,(char *)®s,0) < 0) { + PRINTBADPC; + return; + } +# if defined(SPARC64) + tprintf("[%08lx] ", regs.tpc); +# else + tprintf("[%08lx] ", regs.pc); +# endif +# elif defined(HPPA) + long pc; + + if(upeek(tcp,PT_IAOQ0,&pc) < 0) { + tprintf ("[????????] "); + return; + } + tprintf("[%08lx] ", pc); +# elif defined(MIPS) + long pc; + + if (upeek(tcp, REG_EPC, &pc) < 0) { + tprintf ("[????????] "); + return; + } + tprintf("[%08lx] ", pc); +# elif defined(SH) + long pc; + + if (upeek(tcp, 4*REG_PC, &pc) < 0) { + tprintf ("[????????] "); + return; + } + tprintf("[%08lx] ", pc); +# elif defined(SH64) + long pc; + + if (upeek(tcp, REG_PC, &pc) < 0) { + tprintf ("[????????????????] "); + return; + } + tprintf("[%08lx] ", pc); +# elif defined(ARM) + long pc; + + if (upeek(tcp, 4*15, &pc) < 0) { + PRINTBADPC; + return; + } + tprintf("[%08lx] ", pc); +# elif defined(AVR32) + long pc; + + if (upeek(tcp, REG_PC, &pc) < 0) { + tprintf("[????????] "); + return; + } + tprintf("[%08lx] ", pc); +# elif defined(BFIN) + long pc; + + if (upeek(tcp, PT_PC, &pc) < 0) { + PRINTBADPC; + return; + } + tprintf("[%08lx] ", pc); +#elif defined(CRISV10) + long pc; + + if (upeek(tcp, 4*PT_IRP, &pc) < 0) { + PRINTBADPC; + return; + } + tprintf("[%08lx] ", pc); +#elif defined(CRISV32) + long pc; + + if (upeek(tcp, 4*PT_ERP, &pc) < 0) { + PRINTBADPC; + return; + } + tprintf("[%08lx] ", pc); +# endif /* architecture */ +#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 */ +} + + +/* + * These #if's are huge, please indent them correctly. + * It's easy to get confused otherwise. + */ +#ifndef USE_PROCFS + +#ifdef LINUX + +# include "syscall.h" + +# include <sys/syscall.h> +# ifndef CLONE_PTRACE +# define CLONE_PTRACE 0x00002000 +# endif +# ifndef CLONE_VFORK +# define CLONE_VFORK 0x00004000 +# endif +# ifndef CLONE_VM +# define CLONE_VM 0x00000100 +# 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 cfm, sof, sol; + long bsp; + + if (ia32) { + /* Satisfy a false GCC warning. */ + *state = NULL; + return 0; + } + + if (upeek(tcp, PT_AR_BSP, &bsp) < 0) + return -1; + if (upeek(tcp, PT_CFM, (long *) &cfm) < 0) + return -1; + + sof = (cfm >> 0) & 0x7f; + sol = (cfm >> 7) & 0x7f; + bsp = (long) ia64_rse_skip_regs((unsigned long *) bsp, -sof + sol); + + *state = (unsigned long *) 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, 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, 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; +} + +/* ia64 does not return the input arguments from functions (and syscalls) + according to ia64 RSE (Register Stack Engine) behavior. */ + +# define restore_arg0(tcp, state, val) ((void) (state), 0) +# define restore_arg1(tcp, state, val) ((void) (state), 0) + +# elif defined (SPARC) || defined (SPARC64) + +typedef struct pt_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)->u_regs[U_REG_O0], 0) +# define get_arg1(tcp, state, valp) (*(valp) = (state)->u_regs[U_REG_O1], 0) +# define set_arg0(tcp, state, val) ((state)->u_regs[U_REG_O0] = (val), 0) +# define set_arg1(tcp, state, val) ((state)->u_regs[U_REG_O1] = (val), 0) +# define restore_arg0(tcp, state, val) 0 + +# else /* other architectures */ + +# 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 (AVR32) +# define arg0_offset (REG_R12) +# define arg1_offset (REG_R11) +# elif defined (POWERPC) +# define arg0_offset (sizeof(unsigned long)*PT_R3) +# define arg1_offset (sizeof(unsigned long)*PT_R4) +# 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 +# elif defined CRISV10 || defined CRISV32 +# define arg0_offset (4*PT_R11) +# define arg1_offset (4*PT_ORIG_R10) +# define restore_arg0(tcp, state, val) 0 +# define restore_arg1(tcp, state, val) 0 +# define arg0_index 1 +# define arg1_index 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), arg0_offset, (valp))) +# define get_arg1(tcp, cookie, valp) \ + (upeek ((tcp), 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 /* architectures */ + +# 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(struct tcb *tcp) +{ + static int clone_scno[SUPPORTED_PERSONALITIES] = { SYS_clone }; + arg_setup_state state; + + if (tcp->flags & TCB_BPTSET) { + fprintf(stderr, "PANIC: TCB already set in pid %u\n", tcp->pid); + return -1; + } + + /* + * It's a silly kludge to initialize this with a search at runtime. + * But it's better than maintaining another magic thing in the + * godforsaken tables. + */ + if (clone_scno[current_personality] == 0) { + int i; + for (i = 0; i < nsyscalls; ++i) + if (sysent[i].sys_func == sys_clone) { + clone_scno[current_personality] = i; + break; + } + } + + 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, clone_scno[current_personality]) < 0 + || set_arg0 (tcp, &state, CLONE_PTRACE|SIGCHLD) < 0 + || set_arg1 (tcp, &state, 0) < 0 + || arg_finish_change (tcp, &state) < 0) + 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 + /* ia64 calls directly `clone (CLONE_VFORK | CLONE_VM)' + contrary to x86 SYS_vfork above. Even on x86 we turn the + vfork semantics into plain fork - each application must not + depend on the vfork specifics according to POSIX. We would + hang waiting for the parent resume otherwise. We need to + clear also CLONE_VM but only in the CLONE_VFORK case as + otherwise we would break pthread_create. */ + + if ((arg_setup (tcp, &state) < 0 + || set_arg0 (tcp, &state, + (tcp->u_arg[arg0_index] | CLONE_PTRACE) + & ~(tcp->u_arg[arg0_index] & CLONE_VFORK + ? CLONE_VFORK | CLONE_VM : 0)) < 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)) + if (errno != ESRCH) return -1; + tcp->flags &= ~TCB_BPTSET; + return 0; +} + +# else /* !defined LINUX */ + +int +setbpt(tcp) +struct tcb *tcp; +{ +# 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 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 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->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 /* !defined LINUX */ + +#endif /* !USE_PROCFS */ + + +#ifdef SUNOS4 + +static int +getex(tcp, hdr) +struct tcb *tcp; +struct exec *hdr; +{ + int n; + + for (n = 0; n < sizeof *hdr; n += 4) { + long res; + if (upeek(tcp, 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(tcp, &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; + + 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 */
diff --git a/strace-4.5.20/xlate.el b/strace-4.5.20/xlate.el new file mode 100644 index 0000000..cd083a1 --- /dev/null +++ b/strace-4.5.20/xlate.el
@@ -0,0 +1,80 @@ +;; 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$ + +;; Description: Automate the construction of strace xlat tables. + +;; Usage: Put point and mark around a set of definitions in a header +;; file. Then grab them with C-c G. Switch to the strace source file +;; and build the xlat table with C-c B. Then type the name of the table. + +(global-set-key "\C-cG" 'grab-xlate) +(global-set-key "\C-cB" 'build-xlate) + +(defvar xlate-list nil + "See grab-xlate and build-xlate.") + +(defun grab-xlate (beg end) + "Grab all of the defined names in the region and save them in xlate-list." + (interactive "r") + (save-excursion + (setq xlate-list nil) + (goto-char beg) + (beginning-of-line) + (while (< (point) end) + (and (looking-at "^#[ \t]*define[ \t]+\\([A-Za-z0-9_]+\\)[ \t]+") + (setq xlate-list (cons (buffer-substring (match-beginning 1) + (match-end 1)) + xlate-list))) + (forward-line))) + (and (fboundp 'deactivate-mark) + (deactivate-mark)) + (setq xlate-list (nreverse xlate-list))) + +(defun build-xlate (&optional list) + "Build and insert an strace xlat table based on the last grab." + (interactive) + (or list + (setq list xlate-list)) + (beginning-of-line) + (save-excursion + (insert "static struct xlat ?[] = {\n") + (while list + (insert "\t{ " (car list) ",\n") + (backward-char) + (move-to-column 24 'force) + (end-of-line) + (insert "\"" (car list) "\"") + (move-to-column 40 'force) + (end-of-line) + (insert "},") + (forward-line) + (setq list (cdr list))) + (insert " { 0, NULL },\n") + (insert "};\n") + (insert "\n")) + (search-forward "?") + (delete-backward-char 1))
diff --git a/strace.tar.bz2 b/strace.tar.bz2 new file mode 100644 index 0000000..48139dc --- /dev/null +++ b/strace.tar.bz2 Binary files differ
diff --git a/strace.url b/strace.url new file mode 100644 index 0000000..1b8bd73 --- /dev/null +++ b/strace.url
@@ -0,0 +1 @@ +http://download.sourceforge.net/strace/strace-4.5.20.tar.bz2
diff --git a/strace.version b/strace.version new file mode 100644 index 0000000..195a8c7 --- /dev/null +++ b/strace.version
@@ -0,0 +1 @@ +4.5.20