Compare commits

...

552 Commits

Author SHA1 Message Date
417eb8861e Prepare for 4.7 release
* configure.ac: Version 4.7.
* debian/changelog: 4.7-1.
* strace.spec: 4.7-1.
2012-05-02 12:34:56 +00:00
cf050db3e8 Fix build with <linux/loop.h> from 2.6.18 kernel headers
* configure.ac: Check for LO_FLAGS_AUTOCLEAR and LO_FLAGS_PARTSCAN
declarations.
* loop.c (loop_flags_options): Use LO_FLAGS_AUTOCLEAR and
LO_FLAGS_PARTSCAN only when appropriate declarations are available.
(loop_ioctl): Use LOOP_SET_CAPACITY only when it is defined.
2012-05-02 10:21:49 +00:00
a5fd66b7b9 * vsprintf.c: Check for USE_CUSTOM_PRINTF earlier. 2012-05-01 22:49:49 +00:00
e263e3b813 Remove duplicate names from CREDITS
* .mailmap: Merge email addresses.
* CREDITS.in: Remove a duplicate name.
2012-05-01 21:51:38 +00:00
823eba28cd tests: raise strace check timeout to 60 seconds
* tests/init.sh (check_timeout): New variable.
* tests/ptrace_setoptions: Use it.
* tests/strace-f: Likewise.

Reported-by: Mike Frysinger <vapier@gentoo.org>
2012-05-01 21:32:09 +00:00
a28fbfd523 Update STA_* constants
* time.c (adjtimex_status): Add STA_NANO, STA_MODE, and STA_CLK.
* NEWS (Improvements): Mention it.
2012-05-01 21:17:51 +00:00
4ef3063c95 NEWS: update for release
* NEWS (Improvements): Mention recent recvmsg/recvmmsg decoders
enhancements.
(Portability): Add a recommendation for the minimum Linux kernel
version to use.
2012-05-01 21:04:18 +00:00
ea22e9753d Make printing of utsname.domainname more portable
* configure.ac: Check for struct utsname.domainname field.
* process.c (sys_uname): Print utsname.domainname when the field is
available.
2012-05-01 20:56:32 +00:00
5ea97658e7 Fix recvmmsg decode: do not show more data than actually returned
This change complements recent fix for recvmsg decoding.

* net.c (printmmsghdr): Add msg_len parameter to pass down to do_msghdr.
When this parameter is zero, pass mmsghdr.msg_len to do_msghdr instead.
(decode_mmsg): Add msg_len parameter, pass it down to printmmsghdr.
(sys_sendmmsg): Call decode_mmsg with msg_len == (unsigned long) -1L.
(sys_recvmmsg): Call decode_mmsg with msg_len == 0.
2012-05-01 20:41:40 +00:00
043b5f8142 Remove recently introduced use of ULONG_MAX
* io.c: Remove limits.h inclusion.
(tprint_iov): Use "(unsigned long) -1L" instead of "ULONG_MAX".
* net.c: Remove limits.h inclusion.
(printmmsghdr, sys_sendmsg): Use "(unsigned long) -1L" instead of
"ULONG_MAX".
2012-05-01 20:30:02 +00:00
3efa7c7f1b Enable printing of uts.domainname in uname syscall
* process.c (sys_uname): Enable printing of uts.domainname

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-28 16:59:47 +02:00
b5d43b81a8 Fix printstr's len parameter width
We often pass syscall params and other long-sized values
as printstr(len). Truncating them to int may be a bad thing.

* defs.h: Change len parameter's type from int to long in
string_quote and printstr function declarations.
* util.c (string_quote): Special-case only len==-1, not all len<0.
(printstr): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-28 14:58:35 +02:00
e0bc222263 Fix recvmsg decode: do not show more data than actually returned
I noticed that "hostname -d" talks over netlink and gets 20 bytes
of response, but we show entire 1024 bytes of iov.
This changes fixes that.

* defs.h: New function tprint_iov_upto.
* io.c (tprint_iov_upto): Definition of this function.
(tprint_iov): Call tprint_iov_upto.
* net.c (do_msghdr): Add data_size parameter, pass it down to tprint_iov_upto.
(printmsghdr): Add data_size parameter, pass it down to do_msghdr.
(printmmsghdr): Call do_msghdr with data_size==ULONG_MAX.
(sys_sendmsg): Call printmsghdr with data_size==ULONG_MAX.
(sys_recvmsg): Call printmsghdr with data_size==tcp->u_rval.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-28 14:26:18 +02:00
54432560a8 Package strace-log-merge
* strace.spec (%files): Add strace-log-merge.
2012-04-27 23:38:44 +00:00
9b4fca2853 NEWS: clarify & fix typo
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-27 23:38:45 +00:00
aa6d850477 Cast current_wordsize to an int
On 64bit systems with a single personality, we see:
count.c: In function 'call_summary':
count.c:223:5: warning: format '%u' expects type 'unsigned int',
	but argument 3 has type 'long unsigned int'

Since on multi-personality systems this is an array of ints, cast
the multiplication to an int and update the printf format.

* count.c (call_summary): Change %u to %d and cast first argument to int.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-27 23:38:24 +00:00
84e50fc764 Update NEWS for upcoming 4.7 release
* NEWS: Update for 4.7 release.
2012-04-20 17:32:50 +00:00
48e95c7b1a Sync strace.spec and debian/ with packages
* debian/changelog: Sync with 4.5.20-2.3.
* debian/control: Likewise.
* strace.spec: Sync with 4.6-2.
2012-04-20 17:31:48 +00:00
ebee04cfb0 Decode /dev/loop ioctls
Needed to debug some losetup failures, and it's easier when you can see
what the kernel is getting vs what you think you're sending, so add some
decoders for those ioctls.

* loop.c: New file.
* Makefile.am (strace_SOURCES): Add loop.c.
* defs.h (loop_ioctl): New prototype.
(string_quote): Likewise.
* ioctl.c (ioctl_decode): Call loop_ioctl when code is 'L'.
* util.c (string_quote): Remove static keyword.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-18 15:27:25 +00:00
085e428860 x32: add ia32 support
* Makefile.am (EXTRA_DIST): Add linux/x32/errnoent1.h,
linux/x32/ioctlent1.h, linux/x32/signalent1.h and
linux/x32/syscallent1.h.
* configure.ac: Remove AC_GNU_SOURCE, obsoleted by
AC_USE_SYSTEM_EXTENSIONS.
* defs.h (SUPPORTED_PERSONALITIES): Set to 2 for X32.
(PERSONALITY1_WORDSIZE): Set to 4 for X32.
* file.c (stat64): New struct for X32.
(sys_lseek32): New function for X32.
(stat64): Undef.
(sys_fstat64): Likewise.
(sys_stat64): Likewise.
(realprintstat64): New function for X32.
(sys_fstat64): Likewise.
(sys_stat64): Likewise.
* mem.c (sys_old_mmap): New function for X32.
* pathtrace.c (pathtrace_match): Also check sys_old_mmap for X32.
* syscall.c (update_personality): Add X32 support.
(get_scno): Support currpers == 1 for X32.
* linux/syscall.h (sys_lseek32): New function prototype for X32.
* linux/x32/errnoent1.h: New file.
* linux/x32/ioctlent1.h: Likewise.
* linux/x32/signalent1.h: Likewise.
* linux/x32/syscallent1.h: Likewise.
2012-04-18 15:02:40 +00:00
2bb4581ee5 Cast clock_t type to unsigned long long
* resource.c (sys_times): Cast clock_t type to unsigned long long.
* signal.c (printsiginfo): Likewise.
2012-04-17 06:38:17 +04:00
6e4f3c1fa4 Add custom (faster) vfprintf implementation (disabled by default)
* defs.h: Declare strace_vfprintf either as a alias to vfprintf
or as a bona fide function. USE_CUSTOM_PRINTF define controls whether
we use strace_vfprintf. By default, we don't.
* strace.c (tprintf): Call strace_vfprintf instead of vfprintf.
* vsprintf.c: New file, implements strace_vfprintf.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-16 18:22:19 +02:00
61d62cf948 Stop using %h[h]u format specifiers
This is needed for simplified printf, and reduces code size a bit.

* block.c (block_ioctl): Cast the value to unsinged and use %u
instead of using %hu.
* desc.c (sys_io_cancel): Likewise.
* resource.c (sys_sysinfo): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-16 18:16:13 +02:00
142aee0a59 Trivial speed optimization
* strace.c (tprints): Use fputs_unlocked instead of fputs.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-16 18:10:15 +02:00
c933f27a3a Fix a problem with sys_lseek on x32
* file.c (sys_lseek): Use MIPS-n32 variant also for x32

Signed-off-by: H.J. Lu <hongjiu.lu@intel.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-16 17:41:13 +02:00
35be58119e Add x32 support to strace
X32 support is added to Linux kernel 3.4. In a nutshell, x32 is x86-64 with
32bit pointers.  At system call level, x32 is also identical to x86-64,
as shown by many changes like "defined(X86_64) || defined(X32)".  The
main differerence bewteen x32 and x86-64 is off_t in x32 is long long
instead of long.

This patch adds x32 support to strace.  Tested on Linux/x32.

* configure.ac: Support X32.
* defs.h: Set SUPPORTED_PERSONALITIES to 3 for X86_64,
Set PERSONALITY2_WORDSIZE to 4 for X86_64.
Add tcb::ext_arg for X32.
* file.c (stat): New for X32.
(sys_lseek): Use 64-bit version for X32.
(printstat64): Check current_personality != 1 for X86_64.
* ipc.c (indirect_ipccall): Check current_personality == 1
for X86_64.
* mem.c (sys_mmap64): Also use tcp->u_arg for X32.  Print NULL
for zero address.  Call printllval for offset for X32.
* pathtrace.c (pathtrace_match): Don't check sys_old_mmap for
X32.
* process.c (ARG_FLAGS): Defined for X32.
(ARG_STACK): Likewise.
(ARG_PTID): Likewise.
(change_syscall): Handle X32.
(struct_user_offsets): Support X32.
(sys_arch_prctl): Likewise.
* signal.c: Include <asm/sigcontext.h> for X32.
(SA_RESTORER): Also define for X32.
* syscall.c (update_personality): Support X32 for X86_64.
(is_restart_error): Likewise.
(syscall_fixup_on_sysenter): Likewise.
(get_syscall_args): Likewise.
(get_syscall_result): Likewise.
(get_error): Likewise.
(__X32_SYSCALL_BIT): Define if not defined.
(__X32_SYSCALL_MASK): Likewise.
(get_scno): Check DS register value for X32.  Use
__X32_SYSCALL_MASK on X32 system calls.
* util.c (printllval): Use ext_arg for X32.
(printcall): Support X32.
(change_syscall): Likewise.
(arg0_offset): Likewise.
(arg1_offset): Likewise.
* Makefile.am (EXTRA_DIST): Add linux/x32/errnoent.h,
linux/x32/ioctlent.h.in, linux/x32/signalent.h,
linux/x32/syscallent.h, linux/x86_64/errnoent2.h,
linux/x86_64/ioctlent2.h, linux/x86_64/signalent2.h and
linux/x86_64/syscallent2.h.
* linux/x32/errnoent.h: New.
* linux/x32/ioctlent.h.in: Likewise.
* linux/x32/signalent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/errnoent2.h: Likewise.
* linux/x86_64/ioctlent2.h: Likewise.
* linux/x86_64/signalent2.h: Likewise.
* linux/x86_64/syscallent2.h: Likewise.

Signed-off-by: H.J. Lu <hongjiu.lu@intel.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-16 13:00:01 +02:00
dd0130b963 Restore tcb::u_lrval; fix lseek on MIPS-n32
Linux kernel v3.4 adds x32 support.  Both x32 and n32 use 64bit offset
for lseek parameter and return value.  We need u_lrval to handle it
properly.  Also we shouldn't check HAVE_LONG_LONG_OFF_T for n32 lseek.
This patch fixes it properly and prepares lseek for x32.

* defs.h (tcb): Restore tcb::u_lrval field, RVAL_Lfoo constants.
Set RVAL_MASK to 7.
* file.c (sys_lseek): Print 64bit offset and return RVAL_LUDECIMAL
for n32.
* syscall.c (get_error): Set u_lrval for MIPS-n32.
(trace_syscall_exiting): Handle RVAL_Lfoo return value types.

Signed-off-by: H.J. Lu <hongjiu.lu@intel.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-16 12:16:45 +02:00
0cbed357ab Decode mtd ioctls
I got tired of figuring out mtd structures (which show up a lot
in the embedded space), so add decoders for those ioctls.

* defs.h (mtd_ioctl): New prototype.
(print_loff_t): Likewise.
* io.c (print_loff_t): Delete static keyword
* ioctl.c (ioctl_decode): Call mtd_ioctl when code is 'M'.
* Makefile.am (strace_SOURCES): Add mtd.c.
(EXTRA_DIST): Add linux/mtd-abi.h.
* mtd.c: New file.
* linux/mtd-abi.h: New file.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-06 14:39:15 +00:00
7ff5ed9325 Fix indefinite hang on no-mmu systems
The ptrace setoptions code will fork a child which goes to sleep and
expects the parent to continue on to do tests.  Unfortunately, this
does not work on no-mmu systems as fork() is actually vfork() and any
vforked children will hang the parent until it exits or execs.

We might be able to make this test work on no-mmu systems with a bit
of work, but easier to just disable this for the release so it works
now.

* strace.c (test_ptrace_setoptions_for_all): Return if strace_vforked.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-05 14:53:49 +00:00
f36ede69f7 Makefile.am: whitespace fix
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-29 17:21:41 +02:00
7015fe4fd2 powerpc: Add syscall entries for direct socket system calls
* linux/powerpc/syscallent.h: Add direct socket system calls.
2012-03-27 00:05:25 +00:00
4372cc956b qual_syscall: fix potential NULL dereference
Fix regression introduced by commit
c1371ebc40

* syscall.c (qual_syscall): Handle null sys_name.

Reported-by: Fr. Br. George <george@altlinux.org>
2012-03-26 14:14:50 +00:00
030d555ce5 strace-log-merge: fix file suffix calculation
* strace-log-merge: Quote file prefix to fix file suffix calculation.

Reported-by: Denys Vlasenko <vda.linux@googlemail.com>
Suggested-by: Andreas Schwab <schwab@linux-m68k.org>
2012-03-26 12:10:01 +00:00
df790130ff Remove unreachable code
* strace.c (process_opt_p_list): Remove unreachable code.
2012-03-26 13:41:56 +02:00
94f00e62b4 manpage: remove false info about -p being limited to 32 processes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-26 13:31:11 +02:00
c5ccfa450b Tweak help text and manpage (added -In to manpage)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-26 13:10:50 +02:00
378f9c5ad0 printstr: check for potential integer overflow
* util.c (printstr): Check for potential integer overflow during outstr
buffer size calculation.
2012-03-25 22:56:53 +00:00
ccee169ab6 Robustify parsing of numbers from strings
* defs.h (string_to_uint): New prototype.
* util.c (string_to_uint): New function.
* strace.c (error_opt_arg): New function.
(process_opt_p_list): Use string_to_uint instead of atoi.
Terminate in case of invalid process id.
(init): Use string_to_uint instead of atoi.
Use error_opt_arg in case of invalid option argument.
* syscall.c (qual_syscall, qual_signal, qual_desc): Use string_to_uint
instead of atoi.
2012-03-25 21:49:48 +00:00
20f6b54385 strace-log-merge: enhance usage error diagnostics
* strace-log-merge: Add --help option.  Check number of arguments.
Issue an error message when no strace output was merged.
2012-03-25 21:04:57 +00:00
d8879f4206 configure.ac: sort lists and use m4_normalize to ease maintenance
* configure.ac (AC_CHECK_FUNCS, AC_CHECK_HEADERS, AC_CHECK_MEMBERS,
AC_CHECK_DECLS): Sort lists, use m4_normalize.
2012-03-25 15:22:03 +00:00
e4cc7c58dd Simple optimizations
Why open-coding isdigit is a good idea?

Before: call   __ctype_b_loc
        movzbl (%ebx),%edx
        mov    (%eax),%eax
        testb  $0x8,0x1(%eax,%edx,2)
        je     lbl

After:  movzbl (%eax),%edx
        sub    $0x30,%edx
        cmp    $0x9,%dl
        ja     lbl

   text	   data	    bss	    dec	    hex	filename
 236869	    704	  18944	 256517	  3ea05	strace.before
 236719	    700	  18944	 256363	  3e96b	strace

* defs.h: Alias sigemptyset to __sigemptyset on glibc.
* syscall.c (qual_syscall): Open-code isdigit.
(qual_desc): Likewise.
(qual_signal): Open-code isdigit. Remove string copying
which was done for no apparent reason.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-23 11:29:01 +01:00
d63b0d5682 Reorder declarations in defs.h. No code changes
* defs.h: Reorder declarations (such as: keep all printing functions together).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-23 11:26:36 +01:00
6764f8f2f0 Simplify current tcp switching and current column handling
Instead of using "static FILE *outf and static unsigned int curcol"
to cache current outfile and its position, we can simply
remember current tcb and use its ->outf and ->curcol.
This allows to drop numerous "tcp->curcol = curcol" ops in trace().

Turns out we can't drop "static FILE *outf", but now its role is
a bit clearer: it newer changes after init, stays == stderr or
opened to shared log (which may be the same thing if neither -o
nor -ff was specified). Let's rename it then.

   text	   data	    bss	    dec	    hex	filename
 236953	    704	  18944	 256601	  3ea59	strace.before.prev.commit
 236905	    704	  18944	 256553	  3ea29	strace.before
 236869	    704	  18944	 256517	  3ea05	strace

* strace.c: Replace curcol static variable by struct tcb *current_tcp.
Rename static FILE *outf to shared_log (since it no longer caches tcp->outf).
(ptrace_restart): Use current_tcp->curcol instead of curcol.
(tprintf): Check current_tcp != NULL instead of outf != NULL.
Use current_tcp->outf instead of outf, current_tcp->curcol instead of curcol.
(tprints): Likewise.
(line_ended): Likewise.
(printleader): Switch current tcb by "current_tcp = tcp" istead of
assignments to outf and curcol.
(droptcb): Set current_tcp to NULL if we dropped it.
(startup_child): Rename outf to shared_log.
(init): Likewise.
(cleanup): Likewise.
(trace): Simplify current tcp switching and current column handling.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-22 09:56:20 +01:00
8511f2a1f0 Make threaded execve handling code more reabable and somewhat simpler
* strace.c (droptcb): Remove outfname check in "outfname && followfork >= 2" -
with recent changes, followfork >= 2 check guarantees that outfile
was specified, and _is already opened_.
(trace): Move tcb existence check before threaded execve handling.
This allows to remove tcp != NULL checks in threaded execve handling.
Rewrite threaded execve handling code to be less indented,
keeping the same logic.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-22 09:35:51 +01:00
513e9c23df simple cleanups in defs.h. No logic changes.
* defs.h: Move offsetof macro definition into "libc stuff" section.
Renumber TCB_foo constants (smaller constants -> sometimes smaller code).
Remove uoff macro.
* process.c: Move uoff macro here (sole user).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-21 14:39:22 +01:00
b5e0908a17 Show "+++ exited..." with -C
* strace.c (trace): Show "+++ exited..." with -C too.
Save tcp->curcol after PTRACE_LISTEN failure too, just in case.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-21 14:27:40 +01:00
e7a4772196 Slight tweak to qemu_multiarch_testing scripts
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-21 11:32:55 +01:00
a44f9696e4 Replace reprinting decision logic
After this change, we no longer need to decide when we need
to set TCB_REPRINT, and when we don't: it's never needed :)

Well, almost. That pesky pid-changing execve needs special treatment.
If not it, it'd be possible to nuke TCB_REPRINT...

While at it, fix a case of mishandled -C.

* strace.c (printleader): Do not set TCB_REPRINT.
(trace): Set TCB_REPRINT only for execve with changing pid.
Fix mishandling of -C.
* syscall.c (trace_syscall_entering): Do not clear TCB_REPRINT.
(trace_syscall_exiting): Replace reprinting decision logic.
Remove call to printargs(): it is known to just return 0 here.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-21 11:06:20 +01:00
235067525c Report some ptrace failures; nuke tcp->ptrace_errno
Report some (not all) ptrace errors, namely,
errors on ptrace restart operations.

Before: 10533 sendto(-1, 0x804895e, 17, 0, NULL, 0 <unfinished ...>
After:  10533 sendto(-1, 0x804895e, 17, 0, NULL, 0 <ptrace(SYSCALL):No such process>

This tells user that strace failed to let sendto syscall
to be entered - process was dead at that point of time.
It is (marginally) better than to always say "<unfinished ...>"

While at it, patch removes tcp->ptrace_errno.
I added it many months ago, and it looks that after all
it is not needed for ptrace error detection: I failed to execute
a single existing code path which is accessible
through that variable only.

* defs.h: Remove struct tcp::ptrace_errno field.
* strace.c (ptrace_restart): Emit message to log on error.
(printleader): Remove "if (printing_tcp->ptrace_errno)..." code.
(trace): Remove !tcp->ptrace_errno check, it's always true.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-21 10:32:49 +01:00
907735aec8 Eliminate redundant checks of res variable
* syscall.c (trace_syscall_entering): Eliminate redundant checks of res variable.
(trace_syscall_exiting): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-21 00:23:16 +01:00
46dc8b2206 Rename POWERPC-specific static variable result to ppc_result
* syscall.c: Rename POWERPC-specific static variable result to ppc_result.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-21 00:07:25 +01:00
bb6bb5c179 Remove redundant checks in syscall entry/exit, rename badly named function
* syscall.c (syscall_enter): Rename to get_syscall_args.
Document its return values.
(trace_syscall_entering): Don't check get_syscall_args() return
value for 0, it never returns that.
(syscall_fixup_on_sysexit): Make it return void.
(trace_syscall_exiting): Fix up syscall_fixup_on_sysexit()
call site accordingly.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-20 17:10:35 +01:00
b7a6dae9fb Trivial tweaks. No logic changes
* process.c (sys_ptrace): Remove unneeded line wrapping.
* syscall.c (trace_syscall_entering): Use tprints() instead of tprintf().

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-20 16:48:35 +01:00
852f98a382 Make ptrace_restart() static. No code changes
* defs.h: Remove ptrace_restart() declaration.
* strace.c (ptrace_restart): Move its definition here.
* util.c (ptrace_restart): Remove its definition.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-20 16:27:39 +01:00
806fbce4e6 Do not include limits.h unnecessarily
* ioctl.c: Remove limits.h inclusion left after the reverted change.
2012-03-20 14:02:51 +00:00
feb40c4543 Partially revert last change
Thank you Dmitry for spotting it.

* ioctl.c (compare): Partially revert last change - the new
comparison logic was buggy.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-20 13:11:51 +01:00
1c2e912cc3 Simplify search in ioctl table
text	   data	    bss	    dec	    hex	filename
 236973	    704	  18944	 256621	  3ea6d	strace.before
 236929	    704	  18944	 256577	  3ea41	strace

* ioctl.c (compare): Simplify generation of compare result.
(ioctl_lookup): Pass key directly, not as part of dummy struct.
(ioctl_next_match): More readable code. No logic changes.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-20 10:57:41 +01:00
8cf2c261ea Update qemu build script: now tries to upload result back to host
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-19 12:20:32 +01:00
c1371ebc40 Shrink space needed by undefined syscalls in syscall tables.
Undefined syscall looked like this before this change:
{ 5,    0,      printargs,              "SYS_53"                },
That is, "SYS_53" string had to be allocated and stored in strace binary.
Since now SCNO_IN_RANGE() macro requires sysent[scno].sys_func != NULL
for valid syscalls, we can replace printargs with NULL in such lines
and make them "invalid", thus not requiring syscall name string.

Savings on i386:
   text	   data	    bss	    dec	    hex	filename
 237389	    704	  18944	 257037	  3ec0d	strace.before
 236973	    704	  18944	 256621	  3ea6d	strace
Savings on mips:
 336551  153692   38320  528563   810b3 strace.before
 275543  153688   38320  467551   7225f strace

Tested to still decode undefined syscalls correctly (syscall no. 222 on i386).

* linux/*/syscallent.h: Replace 'printargs, "SYS_nnn"' with
'NULL, NULL'.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-19 09:51:42 +01:00
9fd4f96d2a Optimize code if we have only one personality
On i386:
   text	   data	    bss	    dec	    hex	filename
 238025	    672	  18980	 257677	  3ee8d	strace.before
 237389	    704	  18944	 257037	  3ec0d	strace

* defs.h: Define PERSONALITY0_WORDSIZE as sizeof(long) if not defined.
Introduce new define, current_wordsize as
(personality_wordsize[current_personality]).
Make set_personality() no-op, current_personality constant zero,
current_wordsize as PERSONALITY0_WORDSIZE if we have only one personality.
* count.c (call_summary): Use current_wordsize instead of
personality_wordsize[current_personality].
* desc.c (printflock): Likewise.
* file.c (sys_utime): Likewise.
* io.c (tprint_iov): Likewise.
* process.c (printargv): Likewise.
* resource.c (decode_rlimit): Likewise.
* signal.c (sys_kill): Likewise.
(sys_rt_sigaction): Likewise.
* time.c (sprinttv): Likewise.
(sprint_timespec): Likewise.
(printitv_bitness): Likewise.
(tprint_timex): Likewise.
(printsigevent): Likewise.
* util.c (dumpiov): Likewise.
(umoven): Likewise.
(umovestr): Likewise.
* syscall.c: Initialize sysent to sysent0 etc.
Make current_personality, personality_wordsize[], set_personality()
conditional on SUPPORTED_PERSONALITIES > 1.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-19 09:36:42 +01:00
1be02798f5 Fix mips64 build failure: sys_pwrite64 doesn't exist.
sys_pwrite seems to do the same thing as sys_pwrite64
which we deleted when we removed non-Linux code.

* linux/mips/syscallent.h: s/sys_pwrite64/sys_pwrite/

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-18 23:49:07 +01:00
6acf586aa8 qemu_multiarch_testing/: a directory with scripts for build testing
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-18 23:27:23 +01:00
146b944d4a Make internal_fork and internal_exec static
text	   data	    bss	    dec	    hex	filename
 237917	    672	  18980	 257569	  3ee21	strace
 237845	    672	  18980	 257497	  3edd9	strace_new

* defs.h: Remove declarations of internal_fork and internal_exec.
* process.c: Remove definitions of internal_fork and internal_exec.
* syscall.c: Move them here.
(internal_syscall): Return void instead of int. We were always
returning zero, and callers weren't checking it anyway.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-18 22:10:48 +01:00
f50e7141d5 Remove code which is not used on Linux
Compile tested in qemu on armv4l,armv4tl,armv5l,armv6l,i686,
mipsel,mips,x86_64

* syscall.c: Remove code which handles RVAL_Lfoo constants.
* defs.h: Remove struct tcb::u_lrval member - it is never set.
Remove RVAL_Lfoo constants which signify return of "long" result -
they are never used.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-18 04:16:59 +01:00
88c63f21b1 Remove unused version of sys_lseek
It is buggy: it returns RVAL_LUDECIMAL, which means the return value
is in tcp->u_lrval. But tcp->u_lrval is never set
(on Linux - it used to be set on other OSes).

* file.c (sys_lseek): Remove a version of this function which is
supposed to be used if off_t is long long. It appears to be buggy
and unused.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-18 04:13:14 +01:00
8677913953 Revert "Remove underscores from a few syscall names which have them"
This reverts commit 31972d52b1.
2012-03-17 18:00:14 +01:00
0c163c408f Simplify sys_lseek64 conditional compilation.
It looks like sys_lseek64() is never used.
For one, it is buggy (always shows 0 return value), and no one complains.

From code inspection: sys_lseek64 name is not used anywhere.
It is defined to sys_lseek if HAVE_LONG_LONG_OFF_T is true.
Thus, if !HAVE_LONG_LONG_OFF_T, it is never used.
Therefore "if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T"
conditional it sits in can be simplified to
"if HAVE_LONG_LONG_OFF_T".
Therefore, we can move it a bit up and merge with
"if !HAVE_LONG_LONG_OFF_T, use this sys_lseek()" code block,
by addind an "else" clause to it.
To simplify it more, drop define and just rename sys_lseek64 ->
sys_lseek.

Since the function is buggy, I think it is unused and we can
just drop it. (I checked: at least I386 never uses it).

* file.c (sys_lseek64): Rename to sys_lseek; don't compile it
if _LFS64_LARGEFILE but !HAVE_LONG_LONG_OFF_T since in this case
it is never used.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-17 16:26:47 +01:00
31972d52b1 Remove underscores from a few syscall names which have them
Affected names are "_newselect", "_llseek", "_sysctl".
I see no apparent reason why they have leading underscores.
Moreover, some arches have underscored names and some have
non-underscored ones. This is not consistent.

I verified that every architectire I touched did not have
a similarly named syscall without underscore, thus this change
does not introduce new ambiquities.

I left "_exit" untouched for now, but the same points stand for it too:
some architectures use "exit" and no one complains. So why many
arches are using "_exit"?

* linux/*/syscallent.h: Remove underscores from displayed
syscall names for _newselect, _llseek, _sysctl.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-17 13:23:00 +01:00
a61a72eacb Remove unused struct tcb::baddr field
* defs.h: Remove unused struct tcb::baddr field.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-17 12:41:27 +01:00
e10a0e4734 Remove unused PTRACE_WRITE{TEXT,DATA} constants (they are from SunOS)
* util.c: Remove unused PTRACE_WRITE{TEXT,DATA} constants.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-17 12:11:10 +01:00
989ebc9139 Reindent case labels. No code changes
* net.c (printsockopt): Reindent case labels.
* signal.c (sys_signal): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-17 04:42:07 +01:00
3da9693b81 Remove unused constants. No code changes
* syscall.c: Remove unused ENOIOCTLCMD constant. Fix indentation.
* util.c: Remove unused CLONE_STOPPED constant.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-17 03:17:15 +01:00
081533c100 Move change_syscall() to its only user and make it static
* defs.h: Remove declaration of change_syscall().
* process.c (change_syscall): Remove definition of this function.
* util.c (change_syscall): Add definition of change_syscall().

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-17 02:17:51 +01:00
2897fb3437 MAP_ANON is the same as MAP_ANONYMOUS, no need to have the former
* mem.c: Do not allocate string for MAP_ANON if it is the same as
MAP_ANONYMOUS.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-17 01:29:40 +01:00
3e3490acf7 Indentation and whitespace fixes. No code changes.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-17 01:27:37 +01:00
cb419c52cb test/threaded_execve: make it also test a case when leader is not in syscall
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-17 01:24:25 +01:00
b468f2320a Implement prlimit64 decoding, rewrite [gs]etrlimit decoding
* configure.ac: Remove AC_RLIM_T_IS_LONG_LONG call.
Define SIZEOF_RLIM_T.
* m4/long_long.m4 (AC_RLIM_T_IS_LONG_LONG): Remove.
* linux/dummy.h (sys_prlimit64): Remove.
* linux/syscall.h (sys_prlimit64): New prototype.
* resource.c (resources): Reindent, add RLIMIT_RTTIME.
(sprintrlim, print_rlimit32, sys_getrlimit, sys_setrlimit): Remove.
[HAVE_LONG_LONG_RLIM_T]: Remove dead code.
[_LFS64_LARGEFILE || HAVE_LONG_LONG_RLIM_T]: Likewise.
(sprint_rlim64, print_rlimit64, decode_rlimit64, sprint_rlim32,
print_rlimit32, decode_rlimit, sys_getrlimit, sys_setrlimit,
sys_prlimit64): New functions.
2012-03-16 19:05:21 +00:00
9c3861d317 Remove another "interrupt to quit" message
* strace.c (startup_attach): Remove another "interrupt to quit" message.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-16 15:21:49 +01:00
3db3b26101 Fix "strace -oFILE -ff -p<nonexistant_pid>" behavior
* strace.c (newoutf): Set tcp->outf in non-ff mode too.
(alloctcb): This define is removed.
(alloc_tcb): Renamed to alloctcb. Does not set tcp->outf anymore.
Lost 'command_options_parsed' flag parameter.
(startup_attach): Do not say "interrupt to quit" in attach message -
^C does not work in all cases, we mislead users.
Call newoutf(tcp) after successful attach.
(startup_child): Call newoutf(tcp) after successful attach.
(trace): Call newoutf(tcp) when we picked up already attached child.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-16 15:15:14 +01:00
800ec8ffde Make alloc_tcb and droptcb static. No code changes.
The change is trivial. Diff is large because it is confused
by function definitions being moved around.

* defs.h: Remove declarations of alloc_tcb and droptcb.
* strace.c: Make alloc_tcb and droptcb static.
Shuffle functions around to make compiler happy.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-16 15:11:34 +01:00
a6d91ded3f Tidy up includes and copyright notices, fix indentation
The files not mentioned in changelog below had only
copyright notices fixes and indentation fixes.

* defs.h: Include <stdint.h> and <inttypes.h>.
* file.c: Do not include <inttypes.h>.
Move struct kernel_dirent declaration below top include block.
* block.c: Do not include <stdint.h> and <inttypes.h>.
* quota.c: Likewise.
* desc.c: Likewise.
* signal.c: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-16 12:02:22 +01:00
27aeaa2aaa scsi.c: add copyright header
* scsi.c: This file was added back in 2007 without a copyright header.
Add it now.
2012-03-16 10:43:32 +00:00
4a0ffeaf85 Enhance capget and capset syscalls decoding
* system.c (cap_version): New xlat structure.
(print_cap_header, print_cap_data): New functions.
(sys_capget, sys_capset): Use them.
2012-03-15 22:58:39 +00:00
648c22c4b3 Remove unused code
* syscall.c (subcall_style, decode_subcall): Remove.
[SYS_socket_subcall] (decode_socket_subcall): New function, based on
decode_subcall in deref_style.
[SYS_ipc_subcall] (decode_ipc_subcall): New function, based on
decode_subcall in shift_style.
(trace_syscall_entering): Use decode_socket_subcall and
decode_ipc_subcall instead of decode_subcall.
2012-03-15 22:08:55 +00:00
3d7b11bf55 Fix IPC decoding on alpha and arm
* ipc.c (indirect_ipccall): Return 0 on ALPHA and ARM EABI.
(sys_shmat): Use indirect_ipccall for proper return value decoding.
2012-03-15 21:19:36 +00:00
63e4f86bd7 arm: fix compilation warnings
* configure.ac: Define SIZEOF_LONG.
* signal.c (sys_rt_sigaction) [SUPPORTED_PERSONALITIES > 1]: Help
compiler to optimize out unreachable code that is not expected to work
on platforms where sizeof(long) <= 4.
2012-03-15 20:42:46 +00:00
84abf70011 tests: robustify again buggy shells
* tests/init.sh (check_strace): Use "${parameter:-word}" shell syntax
instead of "${parameter-word}".

Reported-by: Mike Frysinger <vapier@gentoo.org>
2012-03-15 20:17:49 +00:00
3362e89f66 improve ifdef check with decode_subcall
Use the same ifdef logic around the call sites of decode_subcall()
to protect the definition of the func itself.  This fixes warnings
for targets like hppa which don't use this func.

* syscall.c (decode_subcall): Wrap in SYS_socket_subcall and
SYS_ipc_subcall define checks.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-15 20:14:28 +00:00
dde045c13f alpha: fix decode of osf_sigprocmask
The alpha sigprocmask syscall is special in that it comes from OSF rather
than the style that everyone else uses.

Tested with this simple code:
$ cat test.c
#include <signal.h>
main() {
	sigset_t set, oldset;
	sigemptyset(&set);
	sigaddset(&set, SIGINT);
	sigaddset(&set, SIGHUP);
	sigprocmask(SIG_SETMASK, &set, &oldset);
	sigprocmask(SIG_UNBLOCK, &oldset, &set);
	sleep(3);
}
$ gcc test.c && ./strace ./a.out
...
osf_sigprocmask(SIG_SETMASK, [HUP INT]) = 0 (old mask [])
osf_sigprocmask(SIG_UNBLOCK, [])        = 0x3 (old mask [HUP INT])
osf_sigprocmask(SIG_BLOCK, [CHLD])      = 0x3 (old mask [HUP INT])
...

* linux/alpha/syscallent.h: Call sys_sigprocmask for osf_sigprocmask,
and change number of arguments to two.
* signal.c (sys_sigprocmask): Fix decoding of alpha osf sigprocmask.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-15 20:14:17 +00:00
384b0ada7d Fix array size calculation in previous commit
* pathtrace.c (getfdpath): Fix array size calculation.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 18:11:51 +01:00
29865e77e6 pathtrace_select() is never called with NULL, remove dead code
pathtrace_select() is only called for -P FILE options,
and FILE is never a NULL pointer.

   text	   data	    bss	    dec	    hex	filename
 239453	    672	  19012	 259137	  3f441	strace.before
 239329	    672	  19012	 259013	  3f3c5	strace

* pathtrace.c (pathtrace_select): Remove "if (path == NULL)...".
(pathtrace_select): Remove code which only executes if path == NULL.
The code was also buggy, it can free non-malloced pointer.
(getfdpath): Simplify snprintf to sprintf.
(pathmatch): Use strcmp() == 0 idiom for string equality test.
(pathtrace_match): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 18:03:56 +01:00
7c2b1a6dd0 manpage: remove bugs which are fixed
"A traced process ignores SIGSTOP" - fixed, expected to be in linux-3.4.x.
"A traced process which tries to block SIGTRAP will be sent a SIGSTOP
in an attempt to force continuation of tracing." - not needed
and no longer done.
"On Linux, exciting as it would be, tracing the init process is forbidden"
- not true anymore.
"When a traced process receives a SIGTRAP signal not
associated with tracing, strace will not report that signal correctly."
- not true anymore.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 17:32:56 +01:00
a509054aee Simplify SIGCHLD handler setting
* strace.c (init): Set SIGCHLD to SIG_DFL earlier.
(startup_child): Do not bother restoring SIGCHLD handler.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 17:27:49 +01:00
2c4fb905fe When reporting signals, use short signal names (SIGfoo) instead of strerror
* defs.h: Remove strsignal declaration.
* signal.c: Better check for SI_FROMUSER define.
* strace.c (strerror): Remove this function.
(trace): Use short signal names (SIGfoo) instead of strerror.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 17:24:49 +01:00
7cba831386 Remove TODO file: it's eleven years old and completely outdated
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 15:55:33 +01:00
29898149a0 Clean up defs.h order. No code changes
* defs.h: Group together related declarations. No code changes.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 15:02:49 +01:00
6e0bfd11ac Fix lame kernel version checking code
The code "os_release[0] >= '3'" is not good for any
finer-grained checks such as "kernel >= 3.2.1".
Let's proactively fix it.

* strace.c: Change os_release from string to integer.
(get_os_release): Parse uname.release to KERNEL_VERSION
representation.
(init): Convert kernel version check to KERNEL_VERSION.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 14:36:28 +01:00
61e7aad9fa Experimental support for "detach on execve" feature
* strace.c: Define new detach_on_execve, skip_startup_execve bool variables.
(init): Set detach_on_execve on -b, set skip_startup_execve if
"strace PROG" form is used.
(trace): Detach from process if -b and we see PTRACE_EVENT_EXEC event.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 13:44:17 +01:00
3e084ac349 Simple fixes.
* strace.c (usage): Document -d; document that -F is deprecated.
(droptcb): Print "<detached ...>" correctly for non-ff mode too.
(detach): Suppress a warning.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 13:39:05 +01:00
68269aa29f Remove an outdated comment
* defs.h: Remove an outdated comment.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 13:02:31 +01:00
bcde70adbc Remove extra include directives. No code changes.
* defs.h: Include <signal.h> unconditionally.
Other files were doing it unconditionally, so no harm done.
* bjm.c: Remove system includes which are already included by defs.h.
* pathtrace.c: Likewise.
* process.c: Likewise.
* signal.c: Likewise.
* strace.c: Likewise.
* stream.c: Likewise.
* syscall.c: Likewise.
* system.c: Likewise.
* util.c: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 12:56:25 +01:00
a50d2a87a1 Tidy up order of includes; make bool variables explicit.
Bool variables are more compact in data and (on x86) on code too:

   text	   data	    bss	    dec	    hex	filename
 237950	    676	  19044	 257670	  3ee86	strace.before
 237838	    676	  19012	 257526	  3edf6	strace

* defs.h: Group library includes at the top of the file.
Rename dtime to Tflag, debug to debug_flag.
Change debug_flag,Tflag,qflag,not_failing_only,show_fd_path,tracing_paths
variable declarations from int to bool.
* strace.c: Change corresponding definitions. Do the same for static
variables iflag,rflag,print_pid_pfx.
Rename dtime to Tflag, debug to debug_flag.
* syscall.c: Rename dtime to Tflag, debug to debug_flag.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-15 12:49:52 +01:00
b859e14d20 Fix compiler warnings about breaking strict-aliasing rules
* system.c (sys_capget, sys_capset): Use proxy unions to cast long*
pointers to cap_user_header_t and cap_user_data_t pointers without
breaking strict-aliasing rules.

Reported-by: Mike Frysinger <vapier@gentoo.org>
2012-03-15 02:03:36 +00:00
c96fdfae97 ppc64: drop unused pid variable
* syscall.c (get_scno) [POWERPC64]: Delete unused pid variable.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-03-15 01:04:31 +00:00
8f81e385c7 ia64: fix compilation warnings
* linux/ia64/syscallent.h: Remove improper defines and undefs.

Reported-by: Mike Frysinger <vapier@gentoo.org>
2012-03-15 01:01:25 +00:00
ad0c01eeed Ensure that SWAP_FLAG_* constants are defined
* file.c: Define those of SWAP_FLAG_* constants which are not yet
provided by <sys/swap.h>.

Reported-by: Mike Frysinger <vapier@gentoo.org>
2012-03-15 00:52:22 +00:00
33d24762cd Enhance *listxattr syscalls decoding
* file.c (print_xattr_list): New function.
(sys_listxattr, sys_flistxattr): Use it.
2012-03-14 16:34:32 +00:00
7989ad4208 Fix *at syscalls flags decoding
Several *at decoders were defining own incomplete *atflags xlat
structures.  That was error prone, and fchownat decoder actually
failed to recognize AT_EMPTY_PATH.  Merging these incomplete
structures into the single at_flags xlat structure will fix
flags handling in all these decoders altogether.

* file.c: Define all AT_* constants used by *at decoders.
(at_flags): New xlat structure, with records for all AT_* constants.
(fstatatflags, linkat_flags, unlinkatflags): Remove.
(sys_newfstatat, sys_linkat, sys_unlinkat, sys_fchownat,
sys_utimensat):  Use at_flags.
2012-03-13 23:26:01 +00:00
371e153146 Fix linkat flags decoding
* file.c (linkat_flags): New xlat structure.
(sys_linkat): Decode flags using linkat_flags.
2012-03-13 23:16:37 +00:00
297632be5c Implement sys_rt_tgsigqueueinfo syscall decoder
* linux/dummy.h (sys_rt_tgsigqueueinfo): Remove.
* linux/syscall.h (sys_rt_tgsigqueueinfo): New prototype.
* signal.c (print_sigqueueinfo): New function, based on
sys_rt_sigqueueinfo.
(sys_rt_sigqueueinfo): Use print_sigqueueinfo.
(sys_rt_tgsigqueueinfo): New function.
2012-03-13 15:51:13 +00:00
ee3c22ce55 Implement syslog syscall decoder
* linux/dummy.h (sys_syslog): Remove.
* linux/syscall.h (sys_syslog): New prototype.
* system.c (syslog_action_type): New xlat structure.
(sys_syslog): New function.
2012-03-13 15:28:01 +00:00
67559ad260 Less ugly debug display of ptrace events
* strace.c (trace): Less ugly debug display of ptrace events.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-13 12:05:27 +01:00
6bc050cc54 Make manpage mention that -p "pidof PROG" works
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-13 11:48:22 +01:00
7de265d88a Fix logging for "strace -o FILE -ff test/threaded_execve" test case
Our logic which was deciding whether to print "<unfinished ...>"
thingy wasn't working properly for -ff case.

* defs.h: Group log generation-related declarations together.
Add a large comment which explains how it works.
Add declaration of line_ended() function.
* strace.c (line_ended): New function which sets up internal data
to indicate that previous line was finished.
(printleader): Change logic to fix log generation in -ff mode.
(newoutf): Make check for -ff mode consistent with other places.
(droptcb): Print "<detached ...>" if last line for this tcp wasn't finished.
(cleanup): Remove code to print "<unfinished ...>", printleader()
or detach() will do it instead.
(trace): Remove code to print "<unfinished ...>".
Add code which finishes threaded execve's incomplete line
with " <pid changed to PID ...>" message. Replace printing_tcp = NULL
followed by fflush() by line_ended() call.
* process.c (sys_exit): Call line_ended() to indicate that we finished priting.
* syscall.c (trace_syscall_exiting): Set printing_tcp to current tcp.
Call line_ended() to indicate that we finished priting.
Remove call to fflush(), it is done by line_ended() now.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-13 11:44:31 +01:00
3df080af31 net.c: recognize MSG_WAITFORONE
* net.c (msg_flags): Add MSG_WAITFORONE.
2012-03-13 01:26:26 +00:00
328bf250bd Treat -ff without -o FILE as single -f
* strace.c (init): Treat -ff without -o FILE as single -f.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-12 23:34:13 +01:00
558e5127fb Style fix. No code changes
* strace.c (process_opt_p_list): Style fix.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-12 23:32:16 +01:00
ecc8b97c9b Reduce stack usage by ~0.5k
main() uses ~0.5k of stack for local variables and such. When we enter
main tracing loop, most of these variables are no longer used.
But they still take up stack for the entire life of strace.
We can avoid this wastage if we move init code into a separate function.
(Need to be careful and not allow automatic inlining).

* strace.c (init): New function. Most of pre-existing code of
main is now living here.
(main): Call init() to do initialization.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-12 23:05:25 +01:00
2e856a1c92 Preparatory cosmetic changes for the next commit
* strace.c (tprintf): Move function up in the source file. No code changes.
(tprints): Likewise.
(printleader): Likewise.
(tabto): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-12 23:02:26 +01:00
7af9f35001 Implement sendmmsg syscall decoder
* linux/dummy.h (sys_sendmmsg): Remove.
* linux/syscall.h (sys_sendmmsg): New prototype.
* net.c (printmmsghdr): Add index argument specifying the element in
mmsghdr array to print.
(decode_mmsg): New function, prints the whole mmsghdr array, its length
and message flags.
(sys_sendmmsg): New function.
(sys_recvmmsg): Use decode_mmsg to fix mmsghdr array decoding.
2012-03-11 23:59:29 +00:00
1ff463d154 Implement sched_rr_get_interval syscall decoder
* linux/dummy.h (sys_sched_rr_get_interval): Remove.
* linux/syscall.h (sys_sched_rr_get_interval): New prototype.
* process.c (sys_sched_rr_get_interval): New function.
2012-03-11 23:00:11 +00:00
64d0e71f8b Implement migrate_pages syscall decoder
* linux/dummy.h (sys_migrate_pages): Remove.
* linux/syscall.h (sys_migrate_pages): New prototype.
* mem.c (sys_migrate_pages): New function.
2012-03-11 22:44:14 +00:00
1b0bae2969 Implement get_robust_list syscall decoder
* linux/dummy.h (sys_get_robust_list): Remove.
* linux/syscall.h (sys_get_robust_list): New prototype.
* process.c (sys_get_robust_list): New function.
2012-03-11 22:32:26 +00:00
1e8ed076ce Define sys_set_robust_list as an alias to sys_munmap
* linux/dummy.h (sys_set_robust_list): Redefine to sys_munmap.
2012-03-11 21:57:57 +00:00
73215473ce Implement clock_adjtime syscall decoder
* linux/dummy.h (sys_clock_adjtime): Remove.
* linux/syscall.h (sys_clock_adjtime): New prototype.
* time.c (do_adjtimex): New function, based on sys_adjtimex.
(sys_adjtimex): Use it.
(sys_clock_adjtime): New function.
2012-03-11 21:25:51 +00:00
51dba35d38 Define sys_setns as an alias to sys_inotify_rm_watch
* linux/dummy.h (sys_setns): Redefine to sys_inotify_rm_watch.
2012-03-11 15:45:20 +00:00
6bbe69609b Sort definitions of dummy parsers. No code changes
* linux/dummy.h: Sort definitions of parsers implemented as aliases.
2012-03-11 15:43:04 +00:00
ab1a70c7a1 Correct inotify_rm_watch decoder
* file.c (sys_inotify_rm_watch): Print second argument as int.
2012-03-11 15:33:34 +00:00
531af48779 Alias sys_fsync to sys_close
* file.c (sys_fsync): Remove.
* linux/syscall.h (sys_fsync): Likewise.
* linux/dummy.h (sys_fsync): Alias to sys_close.
* linux/m68k/syscallent.h: Add TD flag to fsync entry.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
2012-03-11 15:28:03 +00:00
eb420ef585 Update ioctl entries
* linux/ioctlent.h.in: Regenerate from v3.3 headers.
* linux/i386/ioctlent.h.in: Likewise.
2012-03-10 21:15:58 +00:00
63c5e63f2c strace-log-merge: cleanup
* strace-log-merge: Redirect usage to stderr, make the check
for numeric suffix simpler.
2012-03-10 16:10:06 +00:00
d92029ef88 Add syscall entries for new linux syscalls
* linux/i386/syscallent.h: Update process_vm_writev handler.
* linux/powerpc/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/alpha/syscallent.h: Add entries for accept4 and sendmmsg.
* linux/arm/syscallent.h: Add entries for process_vm_readv and
process_vm_writev.
* linux/m68k/syscallent.h: Likewise.
* linux/mips/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: Add entries for process_vm_readv,
process_vm_writev and accept4.
* linux/microblaze/syscallent.h: Add entries for sendmmsg,
process_vm_readv and process_vm_writev.
2012-03-10 15:04:16 +00:00
039521051e Implement process_vm_writev decoder
* process.c (sys_process_vm_writev): New function.
* linux/syscall.h (sys_process_vm_writev): New prototype.
2012-03-10 14:14:49 +00:00
0bfd74436d Output iovec length in vmsplice and process_vm_readv decoders
* io.c (sys_vmsplice): Output iovec length.
* process.c (sys_process_vm_readv): Likewise.
2012-03-10 14:03:25 +00:00
8829365654 swapon: decode swap flags
* file.c: Include <sys/swap.h>.
(swap_flags): New xlat structure.
(sys_swapon): New function.
* linux/dummy.h (sys_swapon): Remove.
* linux/syscall.h (sys_swapon): New declaration.
2012-03-09 21:02:19 +00:00
37ab4b79de Trivial simplification
* strace.c (detach): Use waitpid instead of wait4.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-09 15:34:16 +01:00
f20250266e Don't consider PROG to be our child in "strace -D PROG" case
TCB_STRACE_CHILD is used for the case when "strace PROG" is ^C-ed
or something like that. strace should not just exit - it should
do something with its child (such as signal it too).

In -D case, PROG is not really a child of _strace_, it is a child
of strace's parent. It's ok to handle it exactly as an attached process.

While we are at it, remove nonsensical special-casing of TCB_STRACE_CHILD
in printing of "<unfinished ...>" message.

* strace.c (startup_attach): Don't set TCB_STRACE_CHILD if -D.
(trace): Print "<unfinished ...>" on error regardless of TCB_STRACE_CHILD.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-09 15:29:45 +01:00
75fe85c2ee Fix the case where we try to detach unattached processes
Before this change:
$ strace -D -p1
strace: -D and -p are mutually exclusive options
Process 1 detached  <==== WRONG! (and we try to SIGSTOP it!!!)

* defs.h: Change the meaning of TCB_ATTACHED: now it means "this tracee
is attached to us". Add TCB_STRACE_CHILD: "this tracee is our child".
* strace.c (kill_save_errno): Move up. No code changes.
(process_opt_p_list): Don't set TCB_ATTACHED on new tcb.
(startup_attach): Change how we work with TCB_ATTACHED.
Set TCB_STRACE_CHILD on -D.
(startup_child): Use kill_save_errno instead of kill.
Set TCB_ATTACHED and TCB_STRACE_CHILD on attached strace child.
If we are in -D case, don't set TCB_ATTACHED (we aren't attached yet).
(detach): do not do PTRACE_DETACH if TCB_ATTACHED is not set.
(cleanup): Check TCB_STRACE_CHILD instead of TCB_ATTACHED.
(trace): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-09 15:15:24 +01:00
97c503fa2e Call PTRACE_CONT with addr=0
* strace.c (trace): Call PTRACE_CONT with addr=0.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-09 15:11:21 +01:00
796f6e82b4 install strace-log-merge by "make install"
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-09 14:21:59 +01:00
da3657d4e7 strace_log_merge: new file. Helper to merge timestamped strace -ff logs
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-09 13:43:44 +01:00
fd88338067 Fix PID prefix printing in "strace -oLOG -ff -p1 -p2 -p3" case
In this case we were printing PIDs to LOG.* files
even though it is not necessary.

The fix is in the addition of "&& followfork < 2" condition.

* strace.c: Remove pflag_seen variable, add print_pid_pfx one.
(process_opt_p_list): Do not pflag_seen++.
(main): Use "nprocs != 0" condition instead of "pflag_seen != 0".
Set print_pid_pfx before entering main tracing loop.
(printleader): Use print_pid_pfx to decide whether to print pid prefix.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-09 13:03:41 +01:00
e8172b79e3 Allow -p PID to take comma or whitespace-separated list of PIDs
* defs.h: Clarify meaning of TCB_ATTACHED. No code changes.
* strace.c (process_opt_p_list): New function.
(main): Call process_opt_p_list to process -p PIDs argument.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-09 13:01:04 +01:00
114aefd618 Pass addr=0 instead of 1 into restarting ptrace calls
While we are at it, fold do_ptrace into its lone caller.
We no longer set tcp->ptrace_errno = ESRCH on ESRC error in upeek.
Other code paths where ptrace fails wern't doing it, and the code which
checks tcp->ptrace_errno even assumes it is never set to ESRCH.
(It was me who added this code sometime ago, so it was my fault
that it was a bit messy)

I ran sigkill_rain test and verified that unfinished syscalls are
still handled correctly.

* util.c (ptrace_restart): Do not pass addr=1 to ptrace(), pass 0 instead.
I have no idea why we were passing 1. Ptrace documentation says
that addr parameter is ignored.
(do_ptrace): Remove this function.
(upeek): Use ptrace() instead of do_ptrace().
* defs.h: Remove do_ptrace() declaration.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-08 12:13:44 +01:00
4c65c44478 Trivial tweaks to error messages
* strace.c (test_ptrace_setoptions_followfork): Use kill_save_errno
instead of kill.
(trace): Use perror_msg instead of perror.
* count.c (set_sortby): Use error_msg_and_die instead of fprintf.
* syscall.c (qualify): Likewise.
* util.c (ptrace_restart): Expand error message.
(umoven): Likewise.
(umovestr): Likewise.
(upeek): Use perror_msg instead of sprintf + perror.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-08 11:54:10 +01:00
aea4b876c8 Remove stray sys_swapon() declaration
* linux/syscall.h: Remove stray sys_swapon() declaration.
* linux/mips/syscallent.h: Include dummy.h with correct relative path.
* linux/dummy.h: Tweak one place where spaces are used instead of tabs.
* linux/dummy_check.sh: New script. It helps in finding stray syscall
handler declarations.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-28 16:39:44 +01:00
3b60542041 Correct syscall entries for t[g]kill
* linux/hppa/syscallent.h: Make tgkill use sys_tgkill, not printargs.
* linux/sh/syscallent.h: Change tkill type TD -> TS.
* linux/sh64/syscallent.h: Likewise.
* linux/mips/syscallent.h: Change tkill type 0 -> TS.
* linux/x86_64/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-27 14:58:06 +01:00
1945ccc3fb Assorted trivial optimizations
text	   data	    bss	    dec	    hex	filename
 236448	    672	  19044	 256164	  3e8a4	strace.before
 236360	    672	  19044	 256076	  3e84c	strace

* file.c (sprintmode): Use smaller static buffer, eliminate strlen call.
(sprinttime): Use smaller static buffer.
(printstat_sparc64): Coalesce two printing calls into one.
(printstat_powerpc32): Likewise.
(printcompat_statfs6): Likewise.
(sys_utime): Do not fetch personality_wordsize[current_personality]
repeatedly - cache it in local variable instead.
* process.c (printargv): Likewise.
* resource.c (sprintrlim): Return const char*, not char*. This allows
to eliminate sprintf(buf, "RLIM_INFINITY"). Use smaller static buffer.
(sprintrlim64): Likewise.
* strace.c (strerror): Use smaller static buffer.
(strsignal): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-27 14:37:48 +01:00
72879c6a35 Alias a few more syscall printing functions
text	   data	    bss	    dec	    hex	filename
 237384	    672	  19044	 257100	  3ec4c	strace.before
 236448	    672	  19044	 256164	  3e8a4	strace

* defs.h: Declare new functions printargs_lu(), printargs_ld()
which simply print syscall all args as unsigned or signed longs.
* desc.c (sys_epoll_create): Call printargs_ld() instead of open-coding it.
* linux/syscall.h: Remove declarations of the following functions:
sys_alarm, sys_getresgid, sys_getsid, sys_nice, sys_setgid, sys_setpgid,
sys_setpgrp, sys_setregid, sys_setresgid.
* process.c (sys_setgid): Delete this function: now aliased to sys_setuid().
(sys_getresgid): Delete this function: now aliased to sys_getresuid().
(sys_setregid): Delete this function: now aliased to sys_setreuid().
(sys_setresgid): Delete this function: now aliased to sys_setresuid().
(sys_setpgrp): Delete this function: now aliased to printargs_lu().
(sys_getsid): Likewise.
(sys_setpgid): Likewise.
(sys_alarm): Likewise.
(sys_getpgrp): Delete this function: was unused - was already shadowed
by a define in linux/dummy.h.
(sys_setsid): Likewise.
(sys_getpgid): Likewise.
* resource.c (sys_nice): Delete this function: now aliased to printargs_ld().
* linux/dummy.h: Define new aliases (see above for the list).
* syscall.c (printargs_lu): New function.
(printargs_ld): New function.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-27 14:18:02 +01:00
b237b1b20d Style fixes, no code changes
* desc.c (sys_io_getevents): Indentation fix.
* file.c (sys_xstat): Remove space after function name.
(decode_mknod): Indentation fix.
* net.c (printsockopt): Indentation fix.
* process.c (unalignctl_string): Indentation fix.
(sys_sched_getscheduler): Remove space after ! operator.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-27 13:56:59 +01:00
e83e157021 Compress blank lines
Suppress repeated empty lines left after automated code removal.
This change was made by filtering every source code file through
"cat -s".
2012-02-25 15:41:21 +00:00
ee245d8ca3 Remove parts of automake machinery which are not needed on Linux
This change is a verbatim part of Dmitry's changes to remove support
for non-Linux architectures.

* Makefile.am: Don't install PORTING file. Install README-linux-ptrace file.
Set OS variable to linux unconditionally.
* configure.ac: Remove code to set opsys variable, and its usage.
Remove checks for headers which are never present on Linux.
* m4/stat.m4: Remove 'ifdef LINUX' check.
* m4/statfs.m4: Likewise.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-25 15:34:10 +01:00
dd762c302d Remove and update documentation
This change is a verbatim part of Dmitry's changes to remove support
for non-Linux architectures.

* PORTING: Deleted.
* INSTALL: Modified.
* README: Modified.
* strace.1: Modified: bugs should be reported to mailing list, not Debian.
* strace.spec: do not install PORTING file.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-25 15:29:21 +01:00
aa925db236 Remove a few more code parts which are unused on Linux
This change is abapted from Dmitry's changes to remove support for
non-Linux architectures.

* Makefile.am: Remove if LINUX/endif pairs.
* defs.h: Remove stream_ioctl() declaration.
* ioctl.c (ioctl_decode): Remove 'ifdef HAVE_SYS_STREAM_H' block.
* resource.c: Use 'defined(FOO)' instead of 'defined FOO' form.
* util.c: Likewise.
* signal.c: Remove conditional includes which are never used on Linux.
* stream.c: Likewise.
* file.c: Remove excessive empty lines.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-25 15:19:02 +01:00
1a3cf10c30 Build fixes after non-Linux code removal
* configure.ac: Remove calls to proc-based ptrace checks.
* proc.c: Remove, it's empty now.
* Makefile.am: Remove reference to proc.c.
* net.c: Remove trailing newlines.
* quota.c: Likewise
* resource.c: Likewise
* strace.c: Likewise
* stream.c: Likewise
* time.c: Likewise

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-25 02:54:34 +01:00
c36c352329 Fix defined(FOO) style
* file.c: Consistently use defined(FOO) instead of defined (FOO).
* mem.c: Likewise.
* net.c: Likewise.
* signal.c: Likewise.
* sock.c: Likewise.
* linux/mips/syscallent.h: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-25 02:47:15 +01:00
2d1e90f958 Reindent preprocessor directives in util.c; fix style.
* util.c: Fix indentation of preprocessor directives broken by
automatic removal of non-Linux code. Fix style to use consistent
defined(FOO) instead of defined (FOO).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-25 02:46:14 +01:00
523635f4da Reindent preprocessor directives in syscall.c; fix style.
* syscall.c: Fix indentation of preprocessor directives broken by
automatic removal of non-Linux code. Fix style to use consistent
defined(FOO) instead of defined (FOO).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-25 02:44:25 +01:00
329655a466 Reindent defs.h preprocessor directives
* defs.h: Fix indentation of preprocessor directives broken by
automatic removal of non-Linux code.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-25 02:42:32 +01:00
8470374cba Cleanup after non-Linux code removal.
Conditions such as defined(LINUX) are always true now,
defined(FREEBSD) etc are always false.
When if directive has them as subexpressions, it can be simplified.
Another trivial changes here are fixes for directive indentation.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-25 02:38:52 +01:00
5afdf12572 Manual removal of non-Linux source, documentation, etc.
Remove non-Linux source directories: freebsd/, svr4/, sunos4/, svr4/.
Remove README-freebsd, README-sunos4, README-svr4, m4/procfs.m4.

linux/sparc/{errnoent1,ioctlent1,signalent1}.h used to point to svr4/ files -
replace their contents with copies of used (and now deleted) files.
Make linux/sparc64/{errnoent1,ioctlent1,signalent1}.h include these files
instead of svr4/* ones.

Makefile.am: remove references to deleted files.
configure.ac: Remove a few tests which make no sense on Linux.
Man page: remove non-Linux quirks information.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-25 02:30:32 +01:00
ed720fda5d Automated removal of non-Linux code
This change is generated by running every source through the following command:

unifdef -DLINUX -Dlinux -USUNOS4 -USVR4 -UUNIXWARE -UFREEBSD
-USUNOS4_KERNEL_ARCH_KLUDGE -UHAVE_MP_PROCFS
-UHAVE_POLLABLE_PROCFS -UHAVE_PR_SYSCALL -UUSE_PROCFS file.c

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-25 02:24:03 +01:00
d2a660f534 When accessing data blocks, truncate addr to wordsize
* util.c (umoven): Truncate addr to wordsize before use.
2012-02-25 00:43:22 +01:00
9b3eb84a85 strace.1: fix a typo
* strace.1: Fix a typo in example description.
This fixes Debian bug #653309.
2012-02-22 00:29:44 +00:00
c86340e171 Fix sockaddr_un.sun_path name in decoded output
* net.c (printsock): Show sockaddr_un.sun_path as "sun_path".
This fixes Debian bug #554946.
2012-02-22 00:23:52 +00:00
6c38156b6e Avoid potential core file clobbering on exit
* strace.c (main): Set RLIMIT_CORE to zero before terminating itself
with a deadly signal.
This fixes Debian bug #656398.
2012-02-22 00:15:27 +00:00
44824b9d4b Eliminate native_scno and known_scno
* defs.h (known_scno): Remove.
(sysent): Remove native_scno field.
* process.c [IA64]: Replace known_scno(tcp) with tcp->scno.
(internal_fork) [USE_PROCFS || !LINUX]: Likewise.
* syscall.c: Do not define NR_SYSCALL_BASE.
(known_scno): Remove.
(syscall_fixup_on_sysenter) [USE_PROCFS]: Replace known_scno(tcp)
with tcp->scno.
(trace_syscall_entering) [SVR4 || FREEBSD || SUNOS4]: Likewise.
(syscall_fixup_on_sysexit) [SUNOS4]: Likewise.
2012-02-20 21:44:53 +00:00
0c661513e5 Remove initialization of native_scno field
* linux/i386/syscallent.h: Remove native_scno initialization for clone,
fork and vfork.
* linux/ia64/syscallent.h (sys_fork, sys_vfork): Remove redirections
to printargs.
* linux/syscall.h [IA64]: Do not define SYS_fork and SYS_vfork.
* util.c (printcall) [IA64]: Likewise.
(setbpt): Use sys_func to check for clone, fork and vfork syscalls.
2012-02-20 21:17:58 +00:00
b5e88d43a8 Do not use SYS_ipc and SYS_socketcall
* linux/dummy.h (sys_ipc, sys_socketcall): Remove redirections to
printargs.
* linux/ia64/syscallent.h: Likewise.
* linux/i386/syscallent.h: Remove native_scno initialization for "ipc"
and "socketcall".
* linux/syscall.h (sys_ipc, sys_socketcall): New prototypes.
(SYS_ipc, SYS_socketcall): Remove no longer used constants.
[IA64]: Remove undefining of ipc and socket SYS_* constants.
[SPARC || SPARC64]: Remove unused ipc SYS_* constants.
* ipc.c (sys_ipc): New function.
* sock.c (sys_socketcall): Likewise.
* syscall.c (trace_syscall_entering): Use sys_func to check for ipc and
socket subcalls.
2012-02-20 17:02:38 +00:00
9aa25abb2e Remove initialization of native_scno field for most of syscalls
The native_scno field is not so much used in the code than before.
In many cases sys_func is checked instead, and for most of syscall
entries there is no need to initialize native_scno.

* linux/i386/syscallent.h: Remove native_scno initialization for
_exit, read, write, waitpid, execve, wait4, sysfs, readv, writev,
pread64, pwrite64, exit_group, waitid, send, recv, sendto and
recvfrom syscall entries.
* linux/syscall.h: Do not define no longer used SYS_waitid and
SYS_sub_* constants.
[IA64]: Do not define SYS_waitpid and SYS32_* constants.
* defs.h: Do not define no longer used  __NR_exit_group constant.
* strace.c [USE_PROCFS] (proc_open): Use sys_func to check for execve.
2012-02-20 00:36:01 +00:00
612659e41e util: check for process_vm_readv in C library
glibc-2.15 provides process_vm_readv, so trying to provide it ourselves
with that version fails.

* configure.ac (AC_CHECK_FUNCS): Add process_vm_readv.
* util.c: Handle HAVE_PROCESS_VM_READV.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-02-14 13:38:28 +00:00
0ed9947c14 README-linux-ptrace: correct the description of suppressed signals
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-09 19:57:52 +01:00
bdec9cbceb strace -P: fix handling of invalid syscalls
* pathtrace.c (pathtrace_match): Check the given syscall number using
SCNO_IN_RANGE.
2012-02-06 17:13:59 +00:00
e752bed4af Skip the syscall entry if the sys_func field is NULL
Avoid NULL dereference when there are holes in sysent tables.
It can happen with syscall (number, ...) and number is in those holes.
There are no targets with holey systent tables so far, but at least
one such a target, x32, is already on the horizon.

* defs.h (SCNO_IN_RANGE): Also check the sys_func field.
2012-02-06 16:33:26 +00:00
d602542f16 Define RLIM64_INFINITY only if not defined
* resource.c (RLIM64_INFINITY): Define only if it isn't defined.
2012-02-06 13:33:54 +00:00
0b315b6543 Cast to long for %l in printf
Cast a value to long for %l in printf to avoid compiler warning
on systems where it may be long long.

* count.c (call_summary_pers): Cast to long.
* ipc.c (sys_mq_open, printmqattr): Likewise.
* quota.c (decode_cmd_data): Likewise.
* resource.c (sys_sysinfo): Likewise.
* time.c (tprint_timex): Likewise.
2012-02-06 13:33:54 +00:00
6ca2610cee Check HAVE_LONG_LONG_OFF_T when printing offset
When HAVE_LONG_LONG_OFF_T is defined, we need to use %llu to print
offset.

* io.c (sys_sendfile): Check HAVE_LONG_LONG_OFF_T when printing
offset.
2012-02-06 13:33:41 +00:00
a13b3fea4f Define old stat functions only if needed
When HAVE_LONG_LONG_OFF_T is defined, those old stat functions aren't
used and strace won't link since they use realprintstat which isn't
defined when HAVE_LONG_LONG_OFF_T is defined.

* file.c (convertoldstat, sys_oldstat, sys_oldfstat, sys_oldlstat):
Define only if HAVE_LONG_LONG_OFF_T isn't defined.
2012-02-06 13:33:41 +00:00
d0cd4436b0 Print NULL for zero address in sys_mmap64
* mem.c (sys_mmap64): Print NULL for zero address so that it is
consistent with sys_mmap.
2012-02-06 13:33:41 +00:00
309edeb2e1 Remove unused sys_pread64 and sys_pwrite64 parsers on Linux
* io.c [HAVE_LONG_LONG_OFF_T]: Remove sys_pread64 and sys_pwrite64
aliases.
(sys_pread64, sys_pwrite64): Define these functions only on
[SVR4 && _LFS64_LARGEFILE] platform.
* linux/mips/syscallent.h: Use sys_pread and sys_pwrite to handle
appropriate syscalls.
* linux/syscall.h (sys_pread64, sys_pwrite64): Remove.
* syscall.c (dumpio): Check sys_pread64 and sys_pwrite64 only on
[SVR4 && _LFS64_LARGEFILE] platform.
2012-02-04 15:17:43 +00:00
cdab1becb0 Trivial changes to help text. No code changes.
* strace.c (usage): Tweak help text: remove unpaired closing brackets,
make -V and -h sit on separate lines (hard to see them otherwise).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-03 12:17:57 +01:00
4f3df078b2 Simple optimizations
text	   data	    bss	    dec	    hex	filename
 239474	    672	  20484	 260630	  3fa16	strace.before
 239234	    668	  19044	 258946	  3f382	strace

* file.c (sprint_open_modes): Reduce static buffer size.
Simplify separator printing.
* signal.c (sprintsigmask): Reduce static buffer size.
Simplify separator printing and printing of almost full masks.
Use stpcpy instead of sprintf and strcpy+strlen.
* strace.c (startup_child): Don't strchr() for ':' twice in a row.
* util.c (sprintflags): Exit loop early if possible.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-29 22:38:35 +01:00
3521884c91 Trivial optimization
* strace.c (cleanup): Read 'interrupted' volatile variable only once.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-29 21:17:56 +01:00
b51581e8f0 Make interactive-ness directly controllable via command line option
Defaults are often ok, but when they are not, people get confused.
"Why can't I kill strace?" and "Why strace dies on ^C when I want
to _tracee_ to die instead?" are typical complaints.

* strace.c: Replace 'interactive' variable with 'opt_intr' variable.
Define INTR_foo constants for its possible values.
Define 'interactive' as a macro.
(usage): Document -I n option.
(main): Parse -I n option, modify signal handling to accomidate new
-I 1 and -I 4 modes.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-29 16:53:03 +01:00
6703816060 Suppress compiler warning
* strace.c (trace): Frame potentially unused label with ifdef/endif.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-29 16:46:46 +01:00
a3559250d4 On Ctrl-C induced detach, send SIGINT to child tracee, not SIGTERM.
* strace.c (interrupt): Remember signal number.
(cleanup): If we exiting due to signal, send that signal to child tracee.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-29 16:43:51 +01:00
31fa8a22b1 Add experimental code to use PTRACE_SEIZE, disabled by default
All new code is predicated on "ifdef USE_SEIZE". If it is not defined,
behavior is not changed.

If USE_SEIZE is enabled and run-time check shows that PTRACE_SEIZE works, then:
- All attaching is done with PTRACE_SEIZE + PTRACE_INTERRUPT.
  This means that we no longer generate (and possibly race with) SIGSTOP.
- PTRACE_EVENT_STOP will be generated if tracee is group-stopped.
  When we detect it, we issue PTRACE_LISTEN instead of PTRACE_SYSCALL.
  This leaves tracee stopped. This fixes the inability to SIGSTOP or ^Z
  a straced process.

* defs.h: Add commented-out "define USE_SEIZE 1" and define PTRACE_SEIZE
and related constants.
* strace.c: New variable post_attach_sigstop shows whether we age going
to expect SIGSTOP on attach (IOW: are we going to use PTRACE_SEIZE).
(ptrace_attach_or_seize): New function. Uses PTRACE_ATTACH or
PTRACE_SEIZE + PTRACE_INTERRUPT to attach to given pid.
(startup_attach): Use ptrace_attach_or_seize() instead of ptrace(PTRACE_ATTACH).
(startup_child): Conditionally use alternative attach method using PTRACE_SEIZE.
(test_ptrace_setoptions_followfork): More robust parameters to PTRACE_TRACEME.
(test_ptrace_seize): New function to test whether PTRACE_SEIZE works.
(main): Call test_ptrace_seize() while initializing.
(trace): If PTRACE_EVENT_STOP is seen, restart using PTRACE_LISTEN in order
to not let tracee run.
* process.c: Decode PTRACE_SEIZE, PTRACE_INTERRUPT, PTRACE_LISTEN.
* util.c (ptrace_restart): Add "LISTEN" to a possible error message.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-29 02:01:44 +01:00
2945639eb8 process_vm_readv gets EINVAL if process is gone (SIGKILLed). Don't complain.
* util.c (umoven): Don't complain on EINVAL from process_vm_readv.
(umovestr): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-28 02:49:48 +01:00
64acaa1193 Revert last change. Add a comment to prevent further misunderstanding
* time.c (sys_nanosleep): Display remaining time only on interrupt.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-28 02:29:36 +01:00
ea051f7533 Fix nanosleep decoding: second argument was not shown after success
* time.c (sys_nanosleep): Fix bug - inverted is_restart_error() check.
* syscall.c (is_restart_error): Remove redundant check.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-28 02:16:06 +01:00
3af224c5cd Use process_vm_readv instead of PTRACE_PEEKDATA to read data blocks
Currently, we use PTRACE_PEEKDATA to read things like filenames and
data passed by I/O syscalls.
PTRACE_PEEKDATA gets one word per syscall. This is VERY expensive.
For example, in order to print fstat syscall, we need to perform
more than twenty trips into kernel to fetch one struct stat!

Kernel 3.2 got a new syscall, process_vm_readv(), which can be used to
copy data blocks out of process' address space.

This change uses it in umoven() and umovestr() functions if possible,
with fallback to old method if process_vm_readv() fails.
If it returns ENOSYS, we don't try to use it anymore, eliminating
overhead of trying it on older kernels.

Result of "time strace -oLOG ls -l /usr/lib >/dev/null":
before patch: 0.372s
After patch:  0.262s

* util.c (process_vm_readv): Wrapper to call process_vm_readv syscall.
(umoven): Use process_vm_readv for block reads of tracee memory.
(umovestr): Likewise.
* linux/syscall.h: Declare new function sys_process_vm_readv.
* process.c (sys_process_vm_readv): Decoder for new syscall.
* linux/i386/syscallent.h: Add process_vm_readv, process_vm_writev syscalls.
* linux/x86_64/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-28 01:46:33 +01:00
000b601439 Fix a case of broken output if last seen syscall was exit
* defs.h: Rename tcp_last to printing_tcp. Explain what it means.
Remove printtrailer() function.
* process.c (sys_exit): Convert printtrailer() call to "printing_tcp = NULL".
* strace.c: Add new variable printing_tcp.
(cleanup): Convert printtrailer() call to "printing_tcp = NULL".
(trace): Likewise.
(trace): Fix checks for incomplete line - it was working wrongly if last syscall was exit.
(printleader): Set printing_tcp.
(printtrailer): Remove this function.
* syscall.c: Remove tcp_last variable.
(trace_syscall_entering): Don't set printing_tcp, printleader call now does it.
(trace_syscall_exiting): Convert printtrailer() call to "printing_tcp = NULL".

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-28 01:25:03 +01:00
f7db5dd876 Fix handling of test/threaded_execve.c testcase
Since 3.0, Linux has a way to identify which thread execve'ed.
This patch makes use of it in order to properly dispose
of disappeared ("superseded") thread leader,
and replace it with execve'ed thread.

Before this patch, strace was "leaking" thread which exec'ed.
It was thinking that it still runs. It would look like this:

18460 pause( <unfinished ...>     <=== thread leader
18466 execve("/proc/self/exe", ["exe", "exe"], [/* 47 vars */] <unfinished ...>
18465 +++ exited with 0 +++       <=== exits from other threads
18460 <... pause resumed> )             = 0

The last line is wrong: it's not pause resumed, it's execve resumed.
If thread leader would do exit instead of pause, it is much worse:
strace panics because it thinks it sees return from exit syscall!

And strace isn't aware 18466 (exec'ed thread) is gone.
It still thinks it's executes execve syscall.

* strace.c: New variable "static char *os_release".
(get_os_release): New static function.
(main): Call get_os_release to retrieve Linux version.
(trace): If we see PTRACE_EVENT_EXEC, retrieve old pid, and if it
differs from new one, free one of tcbs and print correct messages.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-28 01:16:02 +01:00
3449ae83c2 Fix readlink result display - was printing bogus "..." semi-randomly
* file.c (decode_readlink): Use printstr() instead of printpathn().

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-27 17:26:29 +01:00
c76ae4352e Add new test program: test/threaded_execve.c
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-27 15:37:13 +01:00
eebb04d4ae Make pid2tcb static
* defs.h: Remove pid2tcb declaration.
* strace.c (pid2tcb): Make this function static.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-27 15:24:48 +01:00
cfad543087 Per Dmitry's request, remove paranoid check in verror_msg()
* strace.c (verror_msg): Remove redundant check for msg != NULL.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-24 12:48:02 +01:00
846ecb9b44 More robust error check for vasprintf
* strace.c (verror_msg): More robust error check for vasprintf.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-24 11:50:05 +01:00
837399af4f Slightly more compact handling of argv[]
text	   data	    bss	    dec	    hex	filename
 238274	    672	  20484	 259430	  3f566	strace.before
 238226	    672	  20484	 259382	  3f536	strace

* strace.c (main): Slightly more compact handling of argv[]

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-24 11:50:04 +01:00
aa6ec415c1 Trivial optimization
* strace.c: Set default interactive = 1 statically instead
of doing it in main().

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-24 11:50:04 +01:00
a677da5e3f Allocate -o OUTFILE buffer only if needed
text	   data	    bss	    dec	    hex	filename
 238258	    668	  28676	 267602	  41552	strace.before
 238274	    668	  20484	 259426	  3f562	strace

* strace.c (main): Allocate -o OUTFILE buffer only if needed:
unused buffer in bss is not entirely free.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-24 11:50:04 +01:00
82bb78c149 Use single fprintf in verror_msg()
This change partially reverts commit 44d0532.

In code before commit 44d0532, single fprintf was used on purpose:
we want to send entire message as one write() call. Since stderr
is unbuffered, separate fprintf's to it always result in separate
writes, they are not coalesced. If we aren't the only program
which writes to this particular stderr, this may result
in interleaved messages.

Since this function is not performance critical, I guess
it's ok to make it less efficient.

* strace.c (verror_msg): Attempt to print the message in single
write operation. Use separate fprintfs as a fallback if malloc fails.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-24 10:17:18 +01:00
a47e6b9fbb Improve code readability (logic is unchanged)
* util.c (umoven): Move assignment out of function call. Make assignment
to a flag variable later, closer to the place where it will be used.
(umovestr): Likewise.
(uload): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-21 04:01:56 +01:00
6cecba5322 Change umovestr API: return > 0 instead of 0 if NUL was seen
* pathtrace.c (upathmatch): Adjust umovestr return value check for new API.
* util.c (printpathn): Use umovestr() > 0 return value for more efficient
(and robust - we don't depend on "no overwrote past NUL" behavior anymore)
handling of terminating NUL.
(printstr): Remove useless NUL placement before umovestr() call.
Allocate 1 byte more to outstr[] array - for NUL.
(umovestr): Change to return 1 if NUL was seen.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-20 11:56:00 +01:00
a17e55ca8f umovestr result may have no NUL, use "%.*s" instead of "%s" to print it
* system.c (sys_mount): Be careful when printing umovestr result,
it may have no terminating NUL.
(sys_sysmips): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-20 11:52:12 +01:00
a1d541ec56 Eliminate code duplication in time printing, reduce a few static buffers
text	   data	    bss	    dec	    hex	filename
 238454	    664	  28772	 267890	  41672	strace.before
 238106	    664	  28676	 267446	  414b6	strace

* defs.h: Add TIMESPEC_TEXT_BUFSIZE and TIMEVAL_TEXT_BUFSIZE defines.
Add 'int special' parameter to sprinttv().
* time.c (sprinttv): Add 'int special' parameter, and use it
similarly to 'int special' parameter of printtv_bitness().
(printtv_bitness): Use sprinttv() instead of duplicating its code.
(print_timespec): Use sprint_timespec() instead of duplicating
its code.
* desc.c (decode_select): Use TIMEVAL_TEXT_BUFSIZE instead of 128
when checking remaining buffer size.
* net.c (sys_recvmsg): Use TIMESPEC_TEXT_BUFSIZE instead of 128
for static buffer size.
* stream.c (decode_poll): Use TIMESPEC_TEXT_BUFSIZE instead of 128
when checking remaining buffer size.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-01-20 11:04:04 +01:00
b3c52cf02a Reduce bss usage and speed up string printing
text	   data	    bss	    dec	    hex	filename
 237913	    660	  49284	 287857	  46471	strace.before
 237973	    660	  28772	 267405	  4148d	strace

This reduces L1 D-cache pressure a bit: instead of dirtying
20k of bss, we will reuse already dirty stack area.

* util.c (printpathn): Use on-stack buffers instead of static ones.
Saves 5*MAXPATHLEN in bss.
(printstr): Use tprints() instead of tprintf("%s") when printing
formatted string. May be a bit faster, depending on libc.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-01-19 17:20:23 +01:00
7d55801ae9 Add support for compat_statfs64
* file.c (struct compat_statfs64, printcompat_statfs64): Define.
(sys_statfs64, sys_fstatfs64): Use it.
2012-01-18 21:19:25 +01:00
000d66f175 Add support for statfs64.f_flags
* file.c (printstatfs64): Print f_flags if available.
2012-01-18 21:19:25 +01:00
a7920a8927 Fix missing parens
* signal.c (sys_sigreturn): Add missing parens.
2012-01-18 21:19:25 +01:00
023b7700de Get rid of TCB_SIGTRAPPED
On attempts to block or set SIGTRAP handler,
for example, using sigaction syscall, we generate
an additional SIGSTOP.

This change gets rid of this SIGSTOP sending/ignoring.
It appears to work just fine.

It also works if I force strace to not use PTRACE_O_TRACESYSGOOD,
which means strace stops will be marked with SIGTRAP,
not (SIGTRAP | 0x80) - I wondered maybe that's when
this hack is needed.

So, why we even have TCB_SIGTRAPPED? No one knows. It predates
version control: this code was present in the initial commit,
in 1999. No adequate comments, either.

Moreover, TCB_SIGTRAPPED is not set in sys_rt_sigaction
and sys_sigprocmask syscalls - the ones which are most usually
used to implement signal blocking, it is only set in obsolete
sys_signal, sys_sigaction, sys_sigsetmask, and in some dead
non-Linux code.

I think whatever bug it was fixing is gone long ago -
at least as long as sys_rt_sigaction is used by glibc.
Again, since glibc (and uclibc) uses sys_rt_sigaction
and sys_sigprocmask, modified code paths are not used
by most programs anyway.

* defs.h: Remove definition of TCB_SIGTRAPPED.
* signal.c (sys_sigvec): Don't set TCB_SIGTRAPPED and don't send SIGSTOP.
(sys_sigsetmask): Likewise.
(sys_sigaction): Likewise.
(sys_signal): Likewise.
* strace.c (trace): Remove code which executes if TCB_SIGTRAPPED is set.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-01-18 16:30:47 +01:00
5e09d77500 When we write log, flush output buffers in a few more cases
I observed a case when signal delivery message was buffered
by stdio until it was flushed along with the next syscall
entry message.

* strace.c (trace): Flush output buffers in a few more cases.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-01-18 16:20:56 +01:00
bbe29b36aa Fix old sigaction display
* signal.c (sys_sigaction): Fix display of sigaction with
SIG_DFL/SIG_IGN handlers.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-01-18 15:30:56 +01:00
e73a89d999 Change x86_64_regs struct type from pt_regs to user_regs_struct
* syscall.c: Change x86_64_regs struct type from
pt_regs to user_regs_struct, and explain the change in comment.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-01-18 11:07:24 +01:00
024cad9a25 Fix struct pt_regs declaration on i386 and x86-64
* defs.h [I386] (i386_regs): Replace definition with declaration.
[X86_64] (x86_64_regs): Remove.
* syscall.c [X86_64] (x86_64_regs): Make static.
2012-01-17 18:37:13 +00:00
fe585656f8 Make ERESTARTxyz messages more descriptive
There is widespread confusion about exact meaning
of ERESTARTxyz codes. Before this change, we were showing
all four of them the same: as "(To be restarted)".

This change prints better explanations for these codes,
and contains verbose comments which explain *why* we display
codes that way - or else someone confused
is bound to come later and mangle them again.
New messages are:

ERESTARTSYS (To be restarted if SA_RESTART is set)
ERESTARTNOINTR (To be restarted)
ERESTARTNOHAND (Interrupted by signal)
ERESTART_RESTARTBLOCK (Interrupted by signal)

* syscall.c (trace_syscall_exiting): Make ERESTARTxyz messages
more descriptive.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-01-12 11:26:34 +01:00
3cc943825e Fix sigreturn arg count from 1 to 0 on all architectures.
* linux/alpha/syscallent.h: Change [rt_]sigreturn's arg count to 0.
* linux/arm/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-01-10 16:48:19 +01:00
b11322fd3c Display mask on enter to sigreturn, not on exit
sys_sigreturn() performs ugly manipulations in order to show
signal mask which is restored by this syscall: on syscall entry,
fetches it from the stack, saves it in tcp->u_arg[]
(where it used to overflow this array - fixed sometime ago),
then retrieves the mask and displays it on syscall exit.

Apparently, the motivation is to make it slightly more obvious
to user that signal mask is restored only when this syscall returns.
IMO, this hardly justifies the necessary hacks. It is much easier
to display the mask at the point when we fetch it - on syscall entry.

While at it, I made it so that we do display returned value/errno.
I see no point in hiding it and showing uninformative "= ?" instead.

Example of pause() being interrupted by ALRM which has installed handler
which re-arms ALRM:

Before the patch:

rt_sigsuspend([INT])                    = ? ERESTARTNOHAND (To be restarted)
--- {si_signo=SIGALRM, si_code=SI_KERNEL} (Alarm clock) ---
alarm(1)                                = 0
sigreturn()                             = ? (mask now [INT])

After:

rt_sigsuspend([INT])                    = ? ERESTARTNOHAND (To be restarted)
--- {si_signo=SIGALRM, si_code=SI_KERNEL} (Alarm clock) ---
alarm(1)                                = 0
sigreturn() (mask [INT])                = -1 EINTR (Interrupted system call)

* defs.h: Declare struct pt_regs i386_regs and struct pt_regs x86_64_regs.
* syscall.c: Remove "static" keywork from these structures' definitions.
* signal.c (sys_sigreturn): Display mask on enter, not on exit.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-01-10 16:40:35 +01:00
f1e6903703 Do not detach from tracee which experienced ptrace error.
Before this patch, if a thread got nuked by exit in another thread
and we happened to poke it at the same time, we print "????(" thingy
and detach the thread. Since we removed "detach before death" logic,
this no longer matches the behavior of other threads.
Before patch:
[pid  1780] exit_group(1)               = ?
[pid  1778] ????( <unfinished ...>
Process 1778 detached
[pid  5860] +++ exited with 1 +++
After:
[pid 17765] exit_group(1)               = ?
[pid 21680] ????( <unfinished ...>
[pid 17791] +++ exited with 1 +++
[pid 21680] +++ exited with 1 +++

* strace (trace): Do not detach from tracee which experienced ptrace error.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-01-04 15:15:26 +01:00
4c1963836f Remove sig parameter from detach()
* strace.c (detach): Drop sig parameter - it is zero in all calls.
(cleanup): Don't pass sig = 0 to detach() call.
(detach): Ditto.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2012-01-04 15:11:09 +01:00
856c7ed97b Enhance decoding for personalities with small wordsize
* util.c (umoven, umovestr) [SUPPORTED_PERSONALITIES > 1]: If current
personality's wordsize is less than sizeof(long), use only significant
bits of the given address.
2011-12-26 21:09:29 +00:00
a5a839a920 Enhance personality switching
On syscall entry, save current personality in the tcb structure
along with scno.
On syscall exit, restore current personality from the tcb structure.
* defs.h (struct tcb) [SUPPORTED_PERSONALITIES > 1]: Add currpers
field.
* strace.c (alloc_tcb) [SUPPORTED_PERSONALITIES > 1]: Initialize
tcp->currpers.
* syscall.c (update_personality) [SUPPORTED_PERSONALITIES > 1]: New
function.
(get_scno, trace_syscall_exiting): Use it.

Reported-by: Michael A Fetterman <mafetter@nvidia.com>
2011-12-23 00:50:49 +00:00
b05fc5463b * net.c (socktcpoptions): Add more TCP_* constants from linux/tcp.h
Reported-by: Rick Jones <rick.jones2@hp.com>
2011-12-01 21:06:00 +00:00
e0f5fd87da Fix sys_ipc/sys_semtimedop decoding on s390
The s390 kernel sys_ipc system call only takes five arguments instead of
six arguments which the common code sys_ipc implementation takes.
One of the arguments of the sys_semtimedop subcall is therefore passed in
a different register than in the common code implementation.
This leads to broken decoding of the timespec argument:

semtimedop(0, 0x3ffffb43832, 1, {...})  = -1 EAGAIN

Fixed it looks like this:

semtimedop(0, 0x3ffffc2c842, 1, {0, 10000000}) = -1 EINTR

* linux/ipc.c (sys_semtimedop): Fix timespec decoding on s390.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
2011-12-01 20:41:42 +00:00
436d892212 strace.c (trace): Fix compilation warning 2011-11-29 00:15:59 +00:00
4d0620dd90 linux/syscall.h: Remove redundant function declarations
Remove 51 function declarations aliased to other declarations in
linux/dummy.h file.
2011-11-28 23:54:36 +00:00
a12c70d587 linux/syscall.h: Sort function declarations 2011-11-28 23:41:58 +00:00
dd760852ac linux/syscall.h: Place one function declaration per line 2011-11-28 23:25:13 +00:00
ad178c0dc0 Remove redundant parsers
* desc.c (sys_dup): Remove.
* file.c (sys_pivotroot, sys_rmdir, sys_fchdir, sys_chroot, sys_fchroot,
sys_unlink, sys_symlink, sys_rename): Remove.
* linux/syscall.h (sys_chroot, sys_dup, sys_fchdir, sys_pivotroot,
sys_rename, sys_rmdir, sys_symlink, sys_unlink): Remove.
* linux/dummy.h: Add aliases for sys_chroot, sys_dup, sys_pivotroot,
sys_rename, sys_rmdir, sys_symlink, sys_unlink.
* pathtrace.c (pathtrace_match): Update.
* sunos4/dummy.h: Add aliases for sys_chroot, sys_dup, sys_fchdir,
sys_fchroot, sys_rename, sys_rmdir, sys_symlink, sys_unlink.
* svr4/dummy.h: Likewise.
* sunos4/syscall.h (sys_chroot, sys_dup, sys_fchdir, sys_fchroot,
sys_rename, sys_rmdir, sys_symlink, sys_unlink): Remove.
* svr4/syscall.h (sys_chroot, sys_dup, sys_fchdir, sys_fchroot,
sys_rename, sys_rmdir, sys_symlink, sys_unlink): Remove.
2011-11-28 22:48:53 +00:00
f33ee91888 Reflect the fact that nfsservctl syscall was removed from linux kernels
linux/dummy.h: Move nfsservctl to "unimplemented" section.
2011-11-28 15:53:20 +00:00
831c7e5628 x86_64: add getcpu syscall entry
* linux/x86_64/syscallent.h: Add syscall entry for getcpu.
2011-11-27 22:49:04 +00:00
00ebeeece0 Add syscall entries for new linux syscalls
* linux/dummy.h: Add printargs parsers for new syscalls.
* linux/arm/syscallent.h: Add entries for sys_clock_adjtime,
sys_name_to_handle_at, sys_open_by_handle_at, sys_sendmmsg, sys_setns
and sys_syncfs.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/alpha/syscallent.h: Add entries for sys_clock_adjtime,
sys_name_to_handle_at, sys_open_by_handle_at, sys_setns and sys_syncfs.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Add entry for sys_setns.
* linux/bfin/syscallent.h: Add entries for sys_sendmmsg and sys_setns.
* linux/hppa/syscallent.h: Add entries for sys_clock_adjtime,
fanotify_init, fanotify_mark, sys_name_to_handle_at,
sys_open_by_handle_at, sys_sendmmsg, sys_setns and sys_syncfs.
2011-11-26 23:37:23 +00:00
1cd2f96a03 Fix prctl syscall entries
* linux/mips/syscallent.h: Fix prctl handler.
* linux/tile/syscallent.h: Likewise.
2011-11-26 23:14:40 +00:00
b11adf3ad2 arm: fix io_* syscall entries
* linux/arm/syscallent.h: Fix handlers for io_setup, io_destroy,
io_getevents, io_submit and io_cancel.
2011-11-26 23:08:14 +00:00
0c79befad2 Fix mincore syscall entries
* linux/arm/syscallent.h: Fix mincore handler.
* linux/avr32/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
2011-11-26 23:03:35 +00:00
e86f54272c Fix sendmsg syscall entries
* linux/arm/syscallent.h: Fix number of sendmsg arguments.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
2011-11-25 23:51:53 +00:00
609ccb229a Fix epoll_wait syscall entries
* linux/arm/syscallent.h: Fix epoll_wait flags and handler.
* linux/m68k/syscallent.h: Fix epoll_wait flags.
* linux/microblaze/syscallent.h: Fix number of epoll_wait arguments.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
2011-11-25 23:45:28 +00:00
6ea78df972 Fix epoll_ctl syscall entries
* linux/arm/syscallent.h: Fix epoll_ctl flags and handler.
* linux/m68k/syscallent.h: Fix epoll_ctl flags.
* linux/x86_64/syscallent.h: Fix number of epoll_ctl arguments.
2011-11-25 23:40:16 +00:00
2b1d1196b2 arm: fix epoll_create syscall entry
* linux/arm/syscallent.h: Fix epoll_create handler.
2011-11-25 23:34:12 +00:00
6710f4af09 Fix mlockall syscall entries
* linux/arm/syscallent.h: Fix number of mlockall arguments.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
2011-11-25 23:24:48 +00:00
a706881b3b Fix epoll_pwait syscall entries
* linux/alpha/syscallent.h: Fix number of epoll_pwait arguments.
* linux/arm/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
2011-11-25 23:19:47 +00:00
30a05158e3 Fix reboot syscall entries
* linux/alpha/syscallent.h: Fix number of reboot arguments.
* linux/arm/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
2011-11-25 23:13:15 +00:00
c0861c0ac8 Fix swapon syscall entries
* linux/arm/syscallent.h: Fix number of swapon arguments.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/alpha/syscallent.h: Fix number of swapon arguments, add TF flag.
* linux/hppa/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
2011-11-25 23:04:04 +00:00
faa2fe84e5 Fix sgetmask and ssetmask syscall entries
* linux/hppa/syscallent.h: Fix sgetmask and ssetmask entries.
* linux/powerpc/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.
2011-11-25 21:57:31 +00:00
9538352ee7 Rename siggetmask to sgetmask and sigsetmask to ssetmask
* linux/arm/syscallent.h: Rename siggetmask to sgetmask and
sigsetmask to ssetmask.
* linux/bfin/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Rename sys_sgetmask to sys_siggetmask,
sys_ssetmask to sys_sigsetmask.
2011-11-25 21:48:26 +00:00
454dcd458a Add TRACE_IPC flag to sys_ipc syscall entries
* linux/arm/syscallent.h: Add TI flag to sys_ipc entry.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
2011-11-25 19:27:23 +00:00
594399d8eb gitlog-to-changelog: update from gnulib
* gitlog-to-changelog: Update from gnulib.
* Makefile.am: Add --append-dot to gitlog-to-changelog invocation.
2011-11-05 13:32:27 +00:00
6a4ac6ccc8 Decode TIOCSCTTY's third parameter
* term.c (term_ioctl): Decode TIOCSCTTY's third parameter.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-10-22 04:52:18 +02:00
7f3aca1af9 Remove useless and obsolete "#if DONE" sections. No code changes
* linux/dummy.h: Remove "#if DONE" section.
* linux/sparc/dummy2.h: Likewise.
* linux/sparc64/dummy2.h: Likewise.
* sunos4/dummy.h: Likewise.
* svr4/dummy.h: Likewise.
2011-10-14 15:56:21 +00:00
b9e897d6aa Add names for dummy parsers. No code changes
* linux/dummy.h: Add aliases to printargs() for those of dummy parsers
that had no own names before.
* linux/*/syscallent.h: Use these new names instead of printargs.
2011-10-14 15:52:21 +00:00
9e38484d49 Sort definitions of dummy parsers. No code changes
* linux/dummy.h: Sort definitions of parsers implemented as aliases
to printargs().
2011-10-14 15:52:18 +00:00
aed334c02c sys_epoll_create1: decode flag arguments correctly
* desc.c (epollflags): Define.
(sys_epoll_create1): Use epollflags to printflags. Change "O" to "EPOLL".

Reported-by: Марк Коренберг <socketpair@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-10-14 10:45:19 +00:00
d99e48c0f3 Implement decoding of splice, tee and vmsplice(2) syscalls
* io.c (print_loff_t): New function.
(sys_sendfile64): Use it.
(splice_flags): New xlat structure.
(sys_tee, sys_splice, sys_vmsplice): New functions.
* linux/syscall.h (sys_tee, sys_splice, sys_vmsplice): Declare them.
* linux/*/syscallent.h: Use them.
2011-10-11 17:07:05 +00:00
c327d71258 Fix epoll_wait and epoll_pwait decoding
* desc.c (epoll_wait_common): Print "maxevents" and "timeout" arguments
as integers.

Reported-by: Марк Коренберг <socketpair@gmail.com>
2011-10-11 16:05:57 +00:00
5967c1a66b Decode EPOLLRDHUP
* desc.c (epollevents): Add EPOLLRDHUP.

Reported-by: Марк Коренберг <socketpair@gmail.com>
2011-10-11 15:55:40 +00:00
be55ce794a Remove unreachable code in umoven() and umovestr().
* util.c (umoven, umovestr): Remove unreachable code.

Reported-by: Weichuan Yan <wchyan@marvell.com>
2011-10-11 15:26:15 +00:00
f88837a666 Do post-attach initialization earlier; fix "we ignore SIGSTOP on NOMMU" bug
We set ptrace options when we see post-attach SIGSTOP.
This is wrong: it's better to set them right away on the very first
stop (whichever it will be). It also will make adding SEIZE support easier,
since SEIZE has no post-attach SIGSTOP.

We do it by adding a new bit, TCB_IGNORE_ONE_SIGSTOP, and treating
TCB_STARTUP and TCB_IGNORE_ONE_SIGSTOP as two slightly different things.

* defs.h: Add a new flag bit, TCB_IGNORE_ONE_SIGSTOP.
* process.c (internal_fork): Set TCB_IGNORE_ONE_SIGSTOP on a newly added child.
* strace.c (startup_attach): Set TCB_IGNORE_ONE_SIGSTOP after attach.
Fix a case when "strace -p PID" found PID dead but sone other of its threads
still alive.
(startup_child): Set TCB_IGNORE_ONE_SIGSTOP after attach, _if needed_.
This fixes a bogus case where we can ignore a _real_ SIGSTOP on NOMMU.
(detach): Perform anti-SIGSTOP dance only if TCB_IGNORE_ONE_SIGSTOP is set,
not if TCB_STARTUP is set.
(trace): Set TCB_IGNORE_ONE_SIGSTOP after attach.
Clear TCB_STARTUP and initialize tracee on the very first tracee stop.
Clear TCB_IGNORE_ONE_SIGSTOP when SIGSTOP is seen.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-05 14:05:46 +02:00
d116a73386 Get rid of TCB_ATTACH_DONE
* defs.h: Remove TCB_ATTACH_DONE constant.
* strace.c (startup_attach): Use TCB_STARTUP instead of TCB_ATTACH_DONE
to distinquish attached from not-yet-attached threads.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-05 14:01:33 +02:00
381dbc2292 Set TCB_STARTUP only _after_ we attached.
This fixes logic in detach() which thinks that TCB_STARTUP
means that we are already attached, but did not see SIGSTOP yet.
This also allows to get rid of TCB_ATTACH_DONE flag.

* process.c (internal_fork): Set TCB_STARTUP after attach.
* strace.c (startup_attach): Likewise.
(startup_child): Likewise.
(alloc_tcb): Do not set TCB_STARTUP on tcb allocation - we are
not attached yet.
(trace): Set TCB_STARTUP when we detech an auto-attached child.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-05 13:59:39 +02:00
6cda73ff9c Simple optimizations in trace()
* strace.c (trace): Calculate WSTOPSIG(status) once,
unify code paths to ptrace(PTRACE_SYSCALL).

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-02 16:23:53 +02:00
014ca3a53c Trivial fixes on error paths
* strace.c (startup_attach): Emit message on fork() failure.
(startup_child): Remove non-informative comment.
* util.c (ptrace_restart): use perror_msg() on error instead of fprintf().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-02 16:19:30 +02:00
ad5155af81 Fix compile failure introduced by last commit
* desc.c (decode_select): Fix double definition of nfds.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-01 18:18:04 +02:00
79a79ea851 Roll back "die on malloc failure" behaviour a bit
After recent change, select(2^31-1, NULL, NULL, NULL)
would make strace exit. This change caps fdsize so that
it is always in [0, 1025*1024], IOW: we will try to allocate at most
1 megabyte, which in practice will almost always work,
unlike malloc(2Gig).

* desc.c (decode_select): Cap fdsize to 1024*1024.
* pathtrace.c (pathtrace_match): Cap fdsize to 1024*1024.
* file.c (sys_getdents): Cap len to 1024*1024.
(sys_getdents64): Cap len to 1024*1024.
* util.c (dumpiov): Refuse to process iov with more than 1024*1024
elements. Don't die on malloc failure.
(dumpstr): Don't die on malloc failure.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-01 16:35:44 +02:00
0a295bc97f Add stpcpy to autoconf machinery
* configure.ac: Add stpcpy to AC_CHECK_FUNCS.
* defs.h: Frame stpcpy with "if !defined HAVE_STPCPY".
* util.c: Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-01 16:31:48 +02:00
b9c7ae6211 Simplify sprinttv()
* time.c (sprinttv): Trivial simplifications.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-01 11:40:40 +02:00
1161725b8e * desc.c (decode_select): Set tcp->auxstr as late as possible.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-01 11:27:37 +02:00
ab034fbf09 Reformat setuid-ing code in startup_child()
New code does the same as old one, but is more readable (I hope).

* strace.c (startup_child): Reformat setuid-ing code.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-01 10:27:42 +02:00
2e968c0bb7 Minor tweaks in startup_child(). Logic isn't changed (but code is)
* strace.c (startup_attach): Tweak comment.
(startup_child): Move common code out of ifdef.
Indent nested ifdefs. Tweak comments. Remove two
unnecessary calls to getpid().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-01 10:23:09 +02:00
60fe8c139c Use tprints with literal strings, it may be faster than tprintf
* bjm.c: Replace tprintf("str") with tprints("str").
* block.c: Likewise.
* desc.c: Likewise.
* file.c: Likewise.
* io.c: Likewise.
* ipc.c: Likewise.
* mem.c: Likewise.
* net.c: Likewise.
* proc.c: Likewise.
* process.c: Likewise.
* quota.c: Likewise.
* resource.c: Likewise.
* scsi.c: Likewise.
* signal.c: Likewise.
* sock.c: Likewise.
* strace.c: Likewise.
* stream.c: Likewise.
* syscall.c: Likewise.
* system.c: Likewise.
* term.c: Likewise.
* time.c: Likewise.
* util.c: Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-01 10:00:28 +02:00
5940e65939 Fix "format not a string literal" warning caused by tprintf(str)
* defs.h: Declare tprints().
* strace.c: Define tprints().
(tabto): Use tprints(str), since tprintf(str) was throwing a warning.
* desc.c: Use tprints(str) instead of tprintf("%s", str).
* file.c: Likewise.
* io.c: Likewise.
* net.c: Likewise.
* process.c: Likewise.
* signal.c: Likewise.
* syscall.c: Likewise.
* util.c: Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-09-01 09:55:05 +02:00
dfa0acc8c1 Add README-linux-ptrace file
I tried to push this doc to Michael Kerrisk <mtk.manpages@gmail.com>,
but got no reply. To avoid losing the document, let it live
in strace tree for now.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-31 15:58:06 +02:00
1d46ba57a8 Make out-of-memory handling more uniform
This fixes one real bug in dumpstr().

* defs.h: Declare die_out_of_memory().
* strace.c (die_out_of_memory): New function.
(strace_popen): If allocation fails, call die_out_of_memory().
(main): Likewise.
(expand_tcbtab): Likewise.
(rebuild_pollv): Likewise.
* count.c (count_syscall): Likewise.
(call_summary_pers): Likewise.
* desc.c (decode_select): Likewise.
* file.c (sys_getdents): Likewise.
(sys_getdents64): Likewise.
(sys_getdirentries): Likewise.
* pathtrace.c (pathtrace_match): Likewise.
* syscall.c (qualify): Likewise.
* util.c (printstr): Likewise.
(dumpiov): Likewise.
(dumpstr): Likewise.
(fixvfork): Likewise.
* mem.c (sys_mincore): Don't check free() parameter for NULL.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-31 14:00:02 +02:00
2fb4db3e7a Optimization: eliminate all remaining usages of strcat()
After this change, we don't use strcat() anywhere.

* defs.h: Change sprinttv() return type to char *.
* time.c (sprinttv): Return pointer past last stored char.
* desc.c (decode_select): Change printing logic in order to eliminate
usage of strcat() - use stpcpy(), *outptr++ = ch, sprintf() instead.
Also reduce usage of strlen().
* stream.c (decode_poll): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-31 12:26:03 +02:00
8778bffdd2 Optimize string_quote() for speed
* util.c (string_quote): Speed up check for terminating NUL.
Replace strintf() with open-coded binary to hex/oct conversions -
we potentially do them for every single byte, need to be fast.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-31 12:22:56 +02:00
5284557bfa Optimization: eliminate some usages of strcat()
* defs.h: Declare stpcpy().
* util.c: Define stpcpy().
* file.c: Remove static str_append().
(sprint_open_modes): Use stpcpy() instead of str_append().
(sprintflags): Use stpcpy() instead of strcat().
(printpathn): Eliminate usage of strcat().
(printstr): Eliminate usage of strcat().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-31 12:07:38 +02:00
b5b2589231 Small optimization on AVR32
* syscall.c (syscall_enter): Optimize tcp->u_arg[i] setting
from regs.FOO for AVR32.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-30 19:04:54 +02:00
eb0e3e8f50 On X86_64 and I386, use PTRACE_GETREGS to fetch all registers
Before this change, registers were read with PTRACE_PEEKUSER
ptrace operation, one per register. This is slower than
fetching them all in one ptrace operation.

* defs.h: include asm/ptrace.h on X86_64 and I386.
* syscall.c: New static variables i386_regs and x86_64_regs.
Remove static eax/rax variables.
(get_scno): Fetch all registers with single PTRACE_GETREGS operation.
(get_syscall_result): Likewise.
(syscall_fixup_on_sysenter): Use PTRACE_GETREGS results in i386/x86_64_regs.
(syscall_enter): Set tcp->u_arg[i] from PTRACE_GETREGS results.
(get_error): Set tcp->u_rval, tcp->u_error from PTRACE_GETREGS results.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-30 18:53:49 +02:00
a673f3fa62 Do not include <limits.h>
* strace.c: Do not include <limits.h> explicitly, it is already included
implicitly by <sys/param.h>.
2011-08-30 16:07:01 +00:00
b038a43d75 Include <sys/param.h> to get PATH_MAX definition
* pathtrace.c: Include <sys/param.h> instead of <limits.h> to get
PATH_MAX definition.

Reported-by: Steve Bennett <steveb@workware.net.au>
2011-08-30 16:05:26 +00:00
77770bbf6b Indent a large set of nested ifdefs/endifs. No code changes
* defs.h: Indent a large set of nested ifdefs/endifs

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-26 19:25:09 +02:00
8b4454cba7 Rename syscall_fixup to syscall_fixup_on_sysenter
* defs.h: Tweak comment.
* syscall.c: Rename syscall_fixup to syscall_fixup_on_sysenter.
(trace_syscall_entering): Use new finction name.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-26 17:56:58 +02:00
f20bff6a73 Make syscall result reading more consistent among different arches
* syscall.c: Eliminate static flags variable for POWERPC.
(syscall_fixup): Don't fetch syscall results. Affected arches:
POWERPC, BFIN, HPPA.
(syscall_fixup_on_sysexit): Move syscall results fetching code
for this function to get_syscall_result. Affected arches:
S390X, POWERPC, BFIN, M68K, HPPA, CRIS, MICROBLAZE.
(get_syscall_result): Add syscall results fetching.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-26 17:56:03 +02:00
ece9879797 Simplify syscall_fixup[_on_sysexit]
* syscall.c (syscall_fixup): Remove checks for entering(tcp).
Remove code which executes if exiting(tcp).
(syscall_fixup_on_sysexit): Remove code which executes
if entering(tcp). Remove checks for exiting(tcp).

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-25 10:25:35 +02:00
20c41fd91d Split syscall_fixup into enter/exit pair of functions
* syscall.c: Create syscall_fixup_on_sysexit() which is a copy of
syscall_fixup().
(trace_syscall_exiting): Call syscall_fixup_on_sysexit() instead of
syscall_fixup().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-25 10:23:00 +02:00
61526c6b1e Remove stray commas in struct initializers. No code changes
* process.c: Remove stray commas in struct initializers.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-25 10:21:13 +02:00
102ec49354 Optimize tabto()
tabto is used in many lines of strace output.
On glibc, tprintf("%*s", col - curcol, "") is noticeably slow
compared to tprintf("                 "). Use the latter.
Observed ~15% reduction of time spent in userspace.

* defs.h: Drop extern declaration of acolumn. Make tabto()
take no parameters.
* process.c (sys_exit): Call tabto() with no parameters.
* syscall.c (trace_syscall_exiting): Call tabto() with no parameters.
* strace.c: Make acolumn static, add static char *acolumn_spaces.
(main): Allocate acolumn_spaces as a string of spaces.
(printleader): Call tabto() with no parameters.
(tabto): Use simpler method to print lots of spaces.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-25 01:27:59 +02:00
fabaa91ab6 * syscall.c (sys_indir): Use %ld for printing long, not %u.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-25 01:23:10 +02:00
cb6f056004 Opotimize "scno >= 0 && scno < nsyscalls" check
gcc can't figure out on its own that this check can be done with
single compare, and does two compares. We can help it by casting
scno to unsigned long: ((unsigned long)(scno) < nsyscalls)

* defs.h: New macro SCNO_IN_RANGE(long_var).
* count.c (count_syscall): Use SCNO_IN_RANGE() instead of open-coded check.
* syscall.c (getrval2): Use SCNO_IN_RANGE() instead of open-coded check.
This fixes a bug: missing check for scno < 0 and scno > nsyscalls
instead of scno >= nsyscalls.
(get_scno): Use SCNO_IN_RANGE() instead of open-coded check.
This fixes a bug: scno > nsyscalls instead of scno >= nsyscalls.
(known_scno): Use SCNO_IN_RANGE() instead of open-coded check.
(internal_syscall): Likewise.
(syscall_enter): Likewise.
(trace_syscall_entering): Likewise.
(get_error): Likewise.
(trace_syscall_exiting): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-25 01:13:43 +02:00
1a5b5a7aff Remove scno_good logic in syscall exit
* syscall.c (trace_syscall_exiting): Remove scno_good logic,
it can't trigger in syscall exit.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-25 00:29:56 +02:00
684fb1ae3c Remove redundant assignments
* syscall.c (get_error): Remove redundant "u_error = 0" and redundant
and unclear comments.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-25 00:26:38 +02:00
92d443c030 Group int-sized fields together in struct tcb
* defs.h: Group int-sized fields together in struct tcb.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-25 00:25:08 +02:00
a614692fb0 Reorder functions in syscall.c. No code changes.
Old order (basically "in no particular order"):
    dumpio
    decode_subcall
    internal_syscall
    get_scno
    get_syscall_result
    known_scno
    syscall_fixup
    is_negated_errno
    get_error
    syscall_enter
    trace_syscall_entering
    trace_syscall_exiting
    trace_syscall
    printargs
    getrval2
    sys_indir
    is_restart_error

New order:
various utility functions:
    decode_subcall
    printargs
    getrval2
    sys_indir
    is_restart_error
syscall enter handling functions:
    get_scno
    known_scno
    syscall_fixup (also used in syscall exit code)
    internal_syscall (also used in syscall exit code)
    syscall_enter
    trace_syscall_entering
syscall exit handling functions:
    get_syscall_result
    is_negated_errno
    get_error
    dumpio
    trace_syscall_exiting
main syscall enter/exit function:
    trace_syscall

* syscall.c: Reorder functions so that related ones are closer
in the source.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-24 18:07:22 +02:00
06602d99b7 Rename some functions, delete unused one. No code changes
* defs.h: Rename get_scno_on_sysenter() to get_scno();
delete force_result() declaration.
* strace.c (proc_open): Rename get_scno_on_sysenter() to get_scno().
* syscall.c: Rename get_scno_on_sysenter() to get_scno().
Rename get_scno_on_sysexit() to get_syscall_result().
Delete unused force_result().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-24 17:53:52 +02:00
2ce12ed31c Unify per-architecture post-execve SIGTRAP check.
Move post-execve SIGTRAP check from get_scno_on_sysenter
(multitude of places on many architectures) to a single location
in trace_syscall_entering. This loosens the logic for some arches,
since many of them had additional checks such as scno == 0.
However, on non-ancient Linux kernels we should never have post-execve
SIGTRAP in the first place, by virtue of using PTRACE_O_TRACEEXEC.

* syscall.c (get_scno_on_sysenter): Remove tcp->flags & TCB_WAITEXECVE checks.
(trace_syscall_entering): Do tcp->flags & TCB_WAITEXECVE check here.
(get_scno_on_sysexit): Tweak comment.
(syscall_fixup): Likewise.
(trace_syscall_exiting): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-24 17:25:32 +02:00
18beb98fad Speed up x86 by avoiding EAX read on syscall entry
on x86, EAX read on syscall entry is not necessary if we know
that post-execve SIGTRAP is disabled by PTRACE_O_TRACEEXEC ptrace option.
This patch (a) moves EAX retrieval from syscall_fixup
to get_scno_on_sysexit, and (b) perform EAX retrieval in syscall_fixup
only if we are in syscall entry and PTRACE_O_TRACEEXEC option is not on.

* syscall.c (get_scno_on_sysexit): On I386 and X86_64, read eax/rax
which contain syscall return value.
(syscall_fixup): On I386 and X86_64, read eax/rax only on syscall enter
and only if PTRACE_O_TRACEEXEC is not in effect.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-24 16:59:23 +02:00
77a7459536 Do not read syscall no in get_scno_on_sysexit
* syscall.c (get_scno_on_sysexit): Remove scno retrieval code, since
we don't save it anyway. This is the first real logic change
which should make strace faster: for example, on x64 ORIG_EAX
is no longer read in each syscall exit.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-24 16:56:03 +02:00
8cd1acd46f Simplify get_scno_on_sysenter/sysexit
* syscall.c (get_scno_on_sysenter): Remove "if (exiting(tcp))" code,
make "if (entering(tcp))" code unconditional.
(get_scno_on_sysexit): Remove "if (entering(tcp))" code,
make "if (exiting(tcp))" code unconditional.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-24 16:52:57 +02:00
9a36ae5e88 get_scno is an unholy mess, make it less horrible
Currently, get_scno does *much* more than "get syscall no".
It checks for post-execve SIGTRAP. It checks for changes
in personality. It retrieves params on entry and registers on exit.
Worse still, it is different in different architectures: for example,
for AVR32 regs are fetched in get_scno(), while for e.g. I386
it is done in syscall_enter().

Another problem is that get_scno() is called on both syscall entry and
syscall exit, which is stupid: we don't need to know scno on syscall
exit, it is already known from last syscall entry and stored in
tcp->scno! In essence, get_scno() does two completely different things
on syscall entry and on exit, they are just mixed into one bottle, like
shampoo and conditioner.

The following patches will try to improve this situation.

This change duplicates get_scno into identical get_scno_on_sysenter,
get_scno_on_sysexit functions. Call them in syscall enter and syscall
exit, correspondingly.

* defs.h: Rename get_scno to get_scno_on_sysenter; declare it only
if USE_PROCFS.
* strace.c (proc_open): Call get_scno_on_sysenter instead of get_scno.
* syscall.c (get_scno): Split into two (so far identical) functions
get_scno_on_sysenter and get_scno_on_sysexit.
(trace_syscall_entering): Call get_scno_on_sysenter instead of get_scno.
(trace_syscall_exiting): Call get_scno_on_sysexit instead of get_scno.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-24 16:47:32 +02:00
5f731c4e1b Reduce code redundancy in syscall_enter()
* syscall.c [LINUX] (syscall_enter): Move tcp->u_nargs initialization
from arch-specific ifdefs to common code.  Always cache tcp->u_nargs in
a local variable and use it in for() loops.
[IA64, AVR32] Rewrite tcp->u_arg[] initialization using a loop.
2011-08-23 17:03:41 +00:00
44142a7b79 Define MAX_ARGS to 6 for all Linux arches
* defs.h: Define MAX_ARGS to 6 for all Linux arches.
* linux/ia64/syscallent.h: Change all 8-argument printargs
to MA (MAX_ARGS).
linux/mips/syscallent.h: Change all two 7-argument printargs
to MA (MAX_ARGS).

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 18:04:25 +02:00
d5e66c4b97 Fix argument printing in sys_mmap64
* mem.c (sys_mmap64): Fix a bug where we used tcp->u_args[i]
instead of argument values copied from memory.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 17:51:58 +02:00
4b887a5a9a Cache tcp->u_nargs in a local variable for for() loops
Loops of the form "for (i = 0; i < tcp->u_nargs; i++) ..."
need to fetch tcp->u_nargs from memory on every iteration
if "..." part has a function call (gcc doesn't know that
tcp->u_nargs won't change). This can be sped up
by putting tcp->u_nargs in a local variable, which might
go into a CPU register.

* syscall.c (decode_subcall): Cache tcp->u_nargs in a local variable
as for() loop limit value.
(syscall_enter): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 13:32:38 +02:00
afc64037e2 Drop checks for sysent[i].nargs == -1
* defs.h: Declare nsyscalls, nerrnos, nioctlents, nsignals as unsigned.
* syscall.c: Define nsyscalls, nerrnos, nioctlents, nsignals as unsigned.
(decode_subcall): Drop checks for sysent[i].nargs == -1.
(syscall_enter): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 13:29:01 +02:00
ac1ce77a23 Stop using nargs == -1 in syscallent tables
Usage -1 as argument count in syscallent tables
necessitates the check for it, a-la:
if (sysent[tcp->scno].nargs != -1)
    tcp->u_nargs = sysent[tcp->scno].nargs;
else
    tcp->u_nargs = MAX_ARGS;
which is stupid: we waste cycles checking something which
is constant and known at compile time.

* defs.h: Make struct sysent::nargs unsigned.
* freebsd/i386/syscallent.h: Replace nargs of -1 with MA.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* svr4/syscallent.h: Likewise.
* freebsd/syscalls.pl: Likewise in generator script.
* syscallent.sh: Likewise in generator script.
* syscall.c: Add define MA MAX_ARGS / undef MA around includes
of syscallent[N].h.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 13:24:17 +02:00
ed4f4f02f1 Move trace_syscall_exiting below trace_syscall_entering. No code changes.
Syscall enter happens before syscall exit. Having functions
in opposite order in the source is confusing.

* syscall.c: Move trace_syscall_exiting below trace_syscall_entering.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:02 +02:00
3b73881a0d Fix -z display.
Before this patch, the following:
    open("qwerty", O_RDONLY)    = -1 ENOENT
    write(2, "wc: qwerty: No such file or dire"..., 38) = 38
was shown totally wrongly with -z:
    open("qwerty", O_RDONLY)    = 38
(yes, that's right, write syscall is lost!)
Now it is shown "less wrongly" as:
    open("qwerty", O_RDONLY <unfinished ...>
    write(2, "wc: qwerty: No such file or dire"..., 38) = 38

* syscall.c (trace_syscall_exiting): Use common TCB_INSYSCALL clearing
via "goto ret". This fixes totally broken display of -z, but even now
it is not working as intended. Add a comment about that.
(trace_syscall_entering): Use common TCB_INSYSCALL setting
via "goto ret".

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:02 +02:00
b88f96129f Straighten up confused comments/messages about post-execve SIGTRAP handling
* defs.h: Explain TCB_INSYSCALL and TCB_WAITEXECVE bits in detail.
* strace.c (choose_pfd): Use entering/exiting macros instead of direct check
for TCB_INSYSCALL.
* syscall.c (get_scno): Use entering/exiting macros instead of direct check
for TCB_INSYSCALL. Fix comments about post-execve SIGTRAP.
(syscall_fixup): Use entering/exiting instead of direct check
for TCB_INSYSCALL. Add a comment what "not a syscall entry" message
usually means. Change wrong "stray syscall exit" messages into
"not a syscall entry" ones.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:02 +02:00
c95a88f124 count_syscall() always returns 0, optimize it
* defs.h (count_syscall): Change return type from int to void.
* count.c (count_syscall): Change return type from int to void.
* syscall.c (trace_syscall_exiting): Change code around call
to count_syscall accordingly.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:02 +02:00
2ecba32d52 Optimize out dummy PC printing on signal delivery
* strace.c (trace): Optimize out dummy PC printing on signal delivery.
While at it, tweak comments.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:02 +02:00
a7949748d1 Conditionally optimize out unused code
* syscall.c (internal_syscall): Call internal_exec only if
SUNOS4 || (LINUX && TCB_WAITEXECVE).
* process.c (internal_exec): Define this function only if
SUNOS4 || (LINUX && TCB_WAITEXECVE).
(printwaitn): Don't check wordsize if SUPPORTED_PERSONALITIES == 1.
* signal.c (sys_kill): Likewise.
* syscall.c (is_negated_errno): Likewise.
(trace_syscall_exiting): Fold a tprintf into tprintfs which follow it.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:02 +02:00
0890c8a403 Cosmetic improvement in ifdefs. No code changes
* strace.c (proc_open): Change ifdefs so that braces are properly paired.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:02 +02:00
8dc0c8c5ef Exclude tcp->pfd from non-procfs systems
* defs.h: Make struct tcb::pfd fields conditional on USE_PROCFS.
* strace.c (alloc_tcb): Use tcp->pfd only if USE_PROCFS.
(droptcb): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
cfd364b011 Small optimizations related to memory allocation
* strace (expand_tcbtab): Shorten "out of memory" message.
(rebuild_pollv): Remove unnecessary NULL check before free().
* util.c (dumpstr): Add a comment about likely bug.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
5d64581e10 Improve code readability by avoiding assignments inside if()
* desc.c (decode_select): Move assignment out of if() condition.
* file.c (sprinttime): Likewise.
(sys_getdirentries): Likewise.
* io.c (sys_ioctl): Likewise.
* strace.c (test_ptrace_setoptions_followfork): Likewise.
(main): Likewise.
(proc_open): Likewise.
(detach): Likewise.
(proc_poll): Likewise.
(trace): Likewise.
* syscall.c (qualify): Likewise.
(sys_indir): Likewise.
* test/procpollable.c (main): Likewise.
* test/sfd.c (main): Likewise.
* time.c (printtv_bitness): Likewise.
(sprinttv): Likewise.
(print_timespec): Likewise.
(void sprint_timespec): Likewise.
(printitv_bitness): Likewise.
* util.c (dumpstr): Likewise.
(umovestr): Likewise.
(fixvfork): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
6b6ed5d669 Convert ioctl_next_match() to new-style C function definition
* ioctl.c (ioctl_next_match): Convert to new-style C function definition.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
39fca62801 Small optimization in signal and ioctl tables
Trivial shuffling of data tables puts them all in one file,
allowing gcc to see their sizes and eliminate variables
which store these sizes.

Surprisingly, in C mode gcc does not optimize out static const int
variables. Help it by using enums instead.

* defs.h: Stop exporting ioctlent{0,1,2}, nioctlents{0,1,2},
signalent{0,1,2}, nsignals{0,1,2}.
* ioctl.c: Remove definitions of ioctlent{,0,1,2} and nioctlents{,0,1,2}.
* signal.c: Remove definitions of signalent{,0,1,2} and nsignals{,0,1,2}.
* syscall.c: Move above definitions to this file. Make them static const
or enums if suitable.
2011-08-23 12:53:01 +02:00
5c774b2be4 Don't return int from set_personality(), no one checks it.
* defs.h (set_personality): Change return type to void.
* syscall.c (set_personality): Change return type to void.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
3ec9632376 Remove unused declaration
* defs.h: Remove unused declaration of handle_new_child().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
d9ec141671 Use natural-sized integer field for tcb::flags
* defs: Change struct tcb::flags type from short to int.
This results in smaller code at least on x86.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
deec74eb52 Make needlessly static data local
* syscall.c (get_scno): For POWERPC64 and X86-64, variable currpers
is declared static. But its old data is never used. Convert it
to ordinary local variable.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
7c9ba8b55e Optimize get_scno function
* syscall.c (get_scno): Make gpr_offset[] array static const.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
799926211a Optimize iocb_cmd_lookup
* desc.c (iocb_cmd_lookup): Make command table constant.
Reduce size of static char buffer.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
3432059f66 Correct sys_sendfile[64] type and nargs
* freebsd/i386/syscallent.h: Correct sys_sendfile nargs 7->8
* linux/mips/syscallent.h: Correct sys_sendfile64 nargs 5->4
* linux/sh/syscallent.h: Correct sys_sendfile64 nargs 5->4
* linux/sh64/syscallent.h: Correct sys_sendfile64 nargs 5->4
* linux/m68k/syscallent.h: Correct sys_sendfile64 type TF->TD|TN
* linux/microblaze/syscallent.h: Correct sys_sendfile64 type TF->TD|TN
* linux/tile/syscallent.h: Correct sys_sendfile and sys_sendfile64 type TD->TD|TN

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
4924dbd6d7 Make addflags return void
* defs.h (addflags): Change return type from int to void.
* util.c (addflags): Change return type from int to void.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
d9560c1080 Set saner MAX_ARGS (6 or 8) for X86_64 and I386
I noticed that tcp->u_args[MAX_ARGS] array is way larger than
I'd expect: for all arches except HPPA it has 32 (!) elements.

I looked at the code and so far I spotted only one abuser of
this fact: sys_sigreturn. On several arches, it saves sigset_t
into tcp->u_args[1...N] on entry and prints it on exit, a-la

memcpy(&tcp->u_arg[1], &sc.oldmask[0], sizeof(sigset_t))

The problem here is that in glibc sigset_t is insanely large:
128 bytes, and using sizeof(sigset_t) in memcpy will overrun
&tcp->u_args[1] even with MAX_ARGS == 32:
On 32 bits, sizeof(tcp->u_args) == 32*4 == 128 bytes!
We may already have a bug there!

This commit changes the code to save NSIG / 8 bytes only.
NSIG can't ever be > 256, and in practice is <= 129,
thus NSIG / 8 is <= 16 bytes == 4 32-bit words,
and even MAX_ARGS == 5 should be enough for saving signal masks.

* defs.h: Reduce MAX_ARGS for X86_64 and I386 from 32 to 8
for FreeBSD and to 6 for everyone else. Add comment about current
state of needed MAX_ARGS.
* signal.c: Add comment about size of sigset_t.
(sprintsigmask): Reduce static string buffer from 8k to 2k.
(sys_sigreturn): Fix sigset saving to save only NSIG / 8 bytes,
not sizeof(sigset_t) bytes.
* linux/mips/syscallent.h: Reduce nargs of printargs-type syscall to 7.
* linux/arm/syscallent.h: Reduce nargs of printargs-type syscall to 6.
* 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.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
9aa97968ed Optimize sys_old_mmap
* mem.c (sys_old_mmap): For Ia64 and 32-bit personality of x86-64,
copy narrow parameters from userspace by single umove, not by six
separate ones; then assign them to long u_arg[i]. For SH[64],
avoid copying of tcp->u_arg.
(sys_mmap): Add FIXME comment - SH64 and i386 seem to be handled
differently for no apparent reason.
* test/mmap_offset_decode.c: New test program, illustrates FIXME.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
31f9cb6f48 Untangle ifdef forest in sys_mmap64. No code changes
After careful analysis, it looks like !LINUX and ALPHA
pass all seven parameters in registers; and in all other cases
parameters are on stack (pointed to by tcp->u_arg[0]).
In light of this, reorganize ifdefs, making them simpler,
without changing any logic.
After this, it's apparent we use tcp->u_arg[4,5,6] and possibly
[7] without checking that it's valid to do so.
So far, just add a comment about this.

* mem.c (sys_mmap64): Rewrite ifdefs in a much simpler way.
Add comments about apparent bugs.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
72a5848741 Style and comment fixes, no code changes
* mem.c: Indent includes to show nesting better.
  (addtileflags): Fix style of this function definition;
  correct wrong endif comment, add another endif comment.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
4b08df42ff Use simpler rounding up to next multiple of 2.
* util.c (printllval): simpler rounding up to next multiple of 2.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
041b3ee42e Cosmetic fixes, no code changes
* defs.h: Add/reformat comments.
* signal.c: Remove wrong comment. Add warning directive
when we detect that NSIG is undefined. Add comment about
NSIG on ARM. Fix typo in comment.
(signame): Reformat code a bit without changes to logic.
Shorten static buffer.
(sys_rt_sigprocmask): Remove stray empty line.
* syscall.c: Add warning directive when we detect that
NSIG is undefined. Add comment about NSIG on ARM.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-23 12:53:01 +02:00
04f8b4860f Fix PTRACE_SETOPTIONS tests
* strace.c [LINUX] (kill_save_errno): New function.
(test_ptrace_setoptions_followfork): Change return type to void.
Fix and harden error handling.  Use kill_save_errno() to avoid errno
clobbering.  Treat EIO from ptrace() the same way as EINVAL.
(test_ptrace_setoptions_for_all): Use kill_save_errno() to avoid errno
clobbering.  Treat EIO from ptrace() the same way as EINVAL.
(main): Update use of test_ptrace_setoptions_followfork().
2011-08-23 12:53:00 +02:00
25caa318ee Fix compilation on linux 2.4.x
* configure.ac: Check for BLKGETSIZE64.
* block.c (block_ioctl): Check for HAVE_BLKGETSIZE64.
2011-08-23 12:53:00 +02:00
44f87efc67 Remove tcp->parent and TCB_CLONE_THREAD.
tcp->parent is used for only two things:
(1) to send signal on detach via tgkill (need to know tgid).
Solution: use tkill, it needs only tid.
(2) to optimize out ptrace options setting for new tracees.
Not a big deal if we drop this optimization: "set options" op is fast,
doing it just one extra time once per each tracee is hardly measurable.

TCB_CLONE_THREAD is a misnomer. It used only to flag sibling we attached to
in startup_attach. This is used to prevent infinite recursive rescanning
of /proc/PID/task.
Despite the name, there is no guarantee it is set only on non-leader:
if one would run "strace -f -p THREAD_ID" and THREAD_ID is *not*
a thread leader, strace will happily attach to it and all siblings
and will think that THREAD_ID is the leader! Which is a bug, but
since we no longer detach when we think tracee is going to die,
this bug no longer matters, because we do not use the knowledge
about thread group leaders for anything. (We used it to delay
leader's exit).

IOW: after this patch strace has no need to know about threads, parents
and children, and so on. Therefore it does not track that information.
It treats all tracees as independent entities. Overall,
this simplifies code a lot.

* defs.h: Add TCB_ATTACH_DONE flag, remove TCB_CLONE_THREAD flag
and struct tcb::parent field.
* process.c (internal_fork): Don't set tcpchild->parent.
* strace.c (startup_attach): Use TCB_ATTACH_DONE flag instead of
TCB_CLONE_THREAD to avoid attach attempts on already-attached threads.
Unlike TCB_CLONE_THREAD, TCB_ATTACH_DONE bit is used only temporarily,
and only in this function. We clear it on every tcb before we return.
(detach): Use tkill instead of tgkill.
(trace): Set ptrace options on new tracees unconditionally,
not only when tcp->parent == NULL.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-17 15:18:21 +02:00
833fb13cef Remove TCB_SUSPENDED constant and related code.
Since we no longer suspend waitpid'ing tracees, we have only one case when
we suspend tracee: when we pick up a new tracee created by clone/fork/vfork.

Background: on some other OSes, attach to child is done this way:
get fork's result (pid), loop ptrace(PTRACE_ATTACH) until you hook up
new process/thread. This is ugly and not safe, but what matters for us
is that it doesn't require suspending. Suspending is required
on Linux only, because on Linux attach to child is done differently.

On Linux, we use two methods of catching new tracee:
adding CLONE_THREAD bit to syscall (if needed, we change
[v]fork into clone before that), or using ptrace options.
In both cases, it may be so that new tracee appears before one which
created it returns from syscall. In this case, current code
suspends new tracee until its creator returns. Only then
strace can determine who is its parent (it needs child's pid for this,
which is visible in parent's [v]fork/clone result).
This is inherently racy. For example, what if SIGKILL kills
creator after it succeeded creating child, but before it returns?
Looks like we will have child suspended forever.

But after previous commit, we DO NOT NEED parent<->child link for anything.
Therefore we do not need suspending too. Bingo!

This patch removes suspending code. Now new tracees will be continued
right away. Next patch will remove tcp->parent member.

* defs.h: Remove TCB_SUSPENDED constant
* process.c (handle_new_child): Delete this function.
  (internal_fork): Do not call handle_new_child on syscall exit.
* strace.c (handle_ptrace_event): Delete this function.
  (trace): Do not suspend new child; remove all handling
  of now impossible TCB_SUSPENDED condition.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-17 11:30:56 +02:00
19cdada5b4 Do not detach when we think tracee is going to die.
Current code plays some ungodly tricks, trying to not detach
thread group leader until all threads exit.

Also, it detaches from a tracee when signal delivery is detected
which will cause tracee to exit.
This operation is racy (not to mention the determination
whether signal is set to SIG_DFL is a horrible hack):
after we determined that this signal is indeed fatal
but before we detach and let process die,
*other thread* may set a handler to this signal, and
we will leak the process, falsely displaying it as killed!

I need to look in the past to figure out why we even do it.
First guess is that it's a workaround for old kernel bugs:
kernel used to deliver exit notifications to the tracer,
not to real parent. These workarounds are ancient
(internal_exit is from 1995).

The patch deletes the hacks. We no longer need tcp->nclone_threads,
TCB_EXITING and TCB_GROUP_EXITING. We also lose a few rather
ugly functions.

I also added a new message: "+++ exited with EXITCODE +++"
which shows exact moment strace got exit notification.
It is analogous to existing "+++ killed by SIG +++" message.

* defs.h: Delete struct tcb::nclone_threads field,
  TCB_EXITING and TCB_GROUP_EXITING constants,
  declarations of sigishandled() and internal_exit().
* process.c (internal_exit): Delete this function.
  (handle_new_child): Don't ++tcp->nclone_threads.
* signal.c (parse_sigset_t): Delete this function.
  (sigishandled): Delete this function.
* strace.c (startup_attach): Don't tcbtab[tcbi]->nclone_threads++.
  (droptcb): Don't delay dropping if tcp->nclone_threads > 0,
  don't drop parent if its nclone_threads reached 0:
  just drop (only) this tcb unconditionally.
  (detach): don't drop parent.
  (handle_group_exit): Delete this function.
  (handle_ptrace_event): Instead of handle_group_exit, just drop tcb;
  do not panic if we see WIFEXITED from an attached pid;
  print "+++ exited with EXITCODE +++" for every WIFEXITED pid.
* syscall.c (internal_syscall):	Do not treat sys_exit specially -
  don't call internal_exit on it.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-17 10:45:32 +02:00
02a08fb6f0 Declare printrusage32() on Alpha
* defs.h [ALPHA] (printrusage32): New declaration.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2011-08-16 15:35:00 +00:00
26d1b1eaa8 Slight optimization and cleanup in trace()
* strace.c (trace): Do not recalculate "cflag ? &ru : NULL"
again and again. Do not clear errno unnecessarily.
Consistently check wait errors as pid < 0, not pid == -1.
Indent ifdefs for better readability.
Remove comments after endif if ifdef/endif block is really tiny.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-15 12:24:14 +02:00
5bd67c86a9 Fix compilation on 2.4.20 kernel based system
* block.c (block_ioctl): add ifdef/endif around BLKGETSIZE64 usage
* strace.c (trace): add ifdef/endif around WIFCONTINUED usage

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-08-15 11:36:09 +02:00
1b0df40644 Check for additional PTRACE_* constants
* configure.ac (AC_CHECK_DECLS): Add PTRACE_O_TRACESYSGOOD,
PTRACE_O_TRACEEXEC, PTRACE_O_TRACEEXIT, PTRACE_EVENT_EXEC,
PTRACE_EVENT_VFORK_DONE and PTRACE_EVENT_EXIT.
* defs.h [LINUX]: Define these PTRACE_* constants when they are not
provided by <sys/ptrace.h>.

Reported-by: Douglas Mencken <dougmencken@gmail.com>
Reported-by: Steve Bennett <steveb@workware.net.au>
2011-07-19 22:13:11 +00:00
d166c55f0d Remove superfluous backslash-continuation in configure.ac
* configure.ac: remove superfluous backslash continuation
in AC_CHECK_DECLS

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-07-19 14:49:57 +02:00
9015cd9f9e Make IOCTL_WSTOP more readable
* defs.h: Make IOCTL_WSTOP more readable

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-24 23:07:24 +02:00
13d22f1aa3 Trivial cleanups
* strace.c (trace): Change ifdef LINUX to make a bit more sense,
  remove wrong comment at its endif. Slightly optimize
  "+++ killed by SIG +++" message for systems without WCOREDUMP macro.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-24 23:01:57 +02:00
e18314ed0f Remove redundant include <stdarg.h>
* strace.c: Remove redundant include <stdarg.h>

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-24 22:58:00 +02:00
178de007d1 Clean up two old comments
* strace.c (startup_attach): Remove misplaced comment.
  (trace) Remove incomplete part of a comment.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-24 22:54:25 +02:00
ead73bd349 Make a few variables static.
* defs.h: Remove tcbtab declaration.
* strace.c: Make run_uid, run_gid, outf, tcbtab, progname
  global variables static

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-24 22:49:58 +02:00
f95397afb8 Add debug output in initial attachment code
* strace.c (startup_attach): If -d, report pid and success/failure
  of every attach attempt.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-24 16:51:16 +02:00
1d5f12ecb8 Better debug logging of allocations and waitpit results
* strace.c (alloc_tcb): Print number of allocated tcb's if -d.
  (droptcb): Likewise.
  (handle_ptrace_event): Remove PTRACE_EVENT_EXEC debug message.
  (trace): Improve logging of waitpid: show WIFxxx, exitcode/signal,
  ptrace event name, WCOREDUMP - all on one line.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-24 16:41:35 +02:00
0b6c73c880 Optimize arrays of register indexes in syscall_enter
* syscall.c (syscall_enter) [BFIN]: Make register no array "static const".
  [SH]: Make register no array "const", pre-multiply it by 4.
  [SH64]: Make register no array "const".
  [X86_64]: Make register no array "const", pre-multiply it by 8.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-23 22:22:34 +02:00
f5d099c270 Deindent syscall_enter by removing unnecessary braces. No code changes.
syscall_enter has many long (>80 columns) lines.
It is aggravated by the fact that it has a lot of {} blocks
which are not necessary (the code is the same without them).
This patch removes {}s and deindents affected lines.
While at it, it indents ifdefs so that nesting is easier to track,
and adds a few spaces in the expressions, such as
"tcp->u_nargs*sizeof..." -> "tcp->u_nargs * sizeof...".
There is no actual changes to the code here.

* syscall.c (syscall_enter): Remove unnecessary {} blocks.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-23 22:10:54 +02:00
47247865eb Remove dead "ifndef CLONE_PTRACE" branch
process.c defines CLONE_PTRACE for Linux, so it can't be undefined.
Therefore ifndef CLONE_PTRACE code is dead (since at least 2004).
This patch removes it.

* process.c (handle_new_child): Remove ifdef CLONE_PTRACE/endif (but not
  the code inside) and entire ifndef CLONE_PTRACE/endif block.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-23 22:06:39 +02:00
91ecfac9b6 Add a comment about setbpt. No code changes.
* defs.h: Add a comment about setbpt().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-23 22:05:50 +02:00
c133bf0eb2 Untangle a particularly badly obfuscated bit of code. No logic changes.
* util.c (setbpt): Calculate new arg0 in more readable way.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-23 21:57:54 +02:00
65d7c4d66c Remove TCB_FOLLOWFORK
TCB_FOLLOWFORK flag seems to be unnecessary, because we either follow
all [v]forks/clones or don't follow any, therefore global variable
followfork is an already existing indicator of what we want to do.
This patch drops all setting/clearing of TCB_FOLLOWFORK bit,
and replaces checks for this bit by checks of followfork value.
In internal_fork, check is moved to in front of if(), since
the check is needed on both "entering" and "exiting" branch.

* defs.h: Remove TCB_FOLLOWFORK define.
* process.c (internal_fork): Do not set/clear TCB_FOLLOWFORK,
  test followfork instead of tcp->flags & TCB_FOLLOWFORK.
  (handle_new_child): Likewise.
* strace.c (startup_attach): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-23 21:46:37 +02:00
1c706b3809 * system.c (sys_capget, sys_capset): Fix pointer arithmetics 2011-06-23 13:25:09 +00:00
4f12af24e4 Make initial tcb allocation more readable. No logic changes.
* strace.c (main): Make initial tcb allocation more readable.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-23 13:16:23 +02:00
b0bafbb5d1 Do not allocate tiny cap_user_header/data structures, place them on stack.
This allows us to avoid having code to malloc them, and code to check
for malloc failure. Resulting code decrease:
   text	   data	    bss	    dec	    hex	filename
  10175	      0	     16	  10191	   27cf	system.o.old
   9797	      0	      0	   9797	   2645	system.o

* system.c (sys_capget): Put cap_user_header_t and cap_user_data_t
  on stack, rather than allocating them in heap. These structures
  are very small (a few integer fields), stack is a better place
  for them.
  (sys_capset): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-23 13:10:28 +02:00
cb2ad00652 Use [p]error_msg[_and_die] where appropriate. No logic changes.
Resulting size changes:
   text    data     bss     dec     hex filename
  17445      16    8572   26033    65b1 strace.o.old
  16850      16    8572   25438    635e strace.o

* strace.c: Replace fprintf[+cleanup]+exit with [p]error_msg_and_die,
  fprintf("progname: ...") with [p]error_msg where appropriate.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-23 13:05:29 +02:00
7b609d5ba0 Whitespace cleanups. No code changes.
* count.c: Place opening curly brace after if (),
  not on the next line. Almost all strace code alredy
  uses this style.
* desc.c: Likewise.
* file.c: Likewise.
* net.c: Likewise.
* pathtrace.c: Likewise.
* process.c: Likewise.
* quota.c: Likewise.
* signal.c: Likewise.
* strace.c: Likewise.
* syscall.c: Likewise.
* time.c: Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-22 14:32:43 +02:00
3d5ed41252 Make strace_fopen abort on error
Error from strace_fopen in main results in call to exit(1).
Error from strace_fopen in newoutf is propagated to newoutf
callers: startup_attach (where it results in exit(1))
and alloc_tcb (where error is ignored). In second case,
the behavior doesn't seem to be right: it means with -ff
on open error for new LOGFILE.PID the output will continue
to go into *the same file as the previous process* - which
would be confusing. Moreover, on droptcb outf may be closed
and the output of other, still running process outputting
to the same outf will be lost. I don't think this is sane.
IOW: in all cases, error in strace_fopen should be fatal.

* strace.c (strace_fopen): Abort on error instead of returning NULL.
  (newoutf): Change return type to void.
  (startup_attach): Remove error check on newoutf return value.
  (main): Remove error check on strace_fopen return value.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-22 13:17:16 +02:00
1f532ab27d Make set_cloexec_flag abort on error
set_cloexec_flag() may fail only if we pass it a bad fd,
such as -1 or non-opened one. If we do, we have a bug
in the caller. It makes no sense to try to continue
running when we detect such a blatant bug in our own code.

* strace (set_cloexec_flag): Abort instead of returning error
  indicator. Change function to return void.
  (strace_fopen): Remove error check on set_cloexec_flag return value.
  (proc_open): Likewise.
  (proc_poll_open): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-22 13:11:23 +02:00
7dd23384f7 Make strace_popen abort on error
It makes no sense to postpone abort on strace_popen error
unti it returns. Moreover, out-of-memory error was exiting
without any message.
While at it, use 0 as "none" for popen_pid, as optimization.

* strace: Initialize popen_pid to 0 - this puts it in bss.
  (trace): Reset popen_pid to 0 instead of -1.
  (strace_popen): Never return NULL as error indicator,
  abort with good error message instead.
  (main): Remove NULL check of strace_popen result.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-22 13:03:56 +02:00
2b60c35b33 Delete fork_tcb()
Get rid of fork_tcb() function. It used to do what the comment
above it says, but now it doesn't do much:
it only sets tcp->flags |= TCB_FOLLOWFORK and maybe calls
expand_tcbtab(). The second operation is not necessary, since
alloc_tcp() will do it itself when needed.
This patch deletes fork_tcb(), open-coding tcp->flags |= TCB_FOLLOWFORK
where it was formerly called. It also makes nprocs, tcbtabsize and
expand_tcbtab() static. (While at it, I nuked redundant
extern char **environ declaration: strace.c had *two* of them...)

* defs.h: Remove declarations of nprocs, tcbtabsize and
  expand_tcbtab.
* process.c (fork_tcb): Remove this function.
  (internal_fork): Open-code fork_tcb.
  (handle_new_child): Likewise.
* strace.c: Remove redundant "extern char **environ". Declare
  nprocs and tcbtabsize static.
  (expand_tcbtab): Make it static.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-22 12:45:25 +02:00
18da273675 Simplify expand_tcbtab and alloc_tcb
Get rid of a few intermediate variables, simplifies a few expressions,
and uses error_msg_and_die instead of more verbose
fprintf+cleanup+exit sequence.
In alloc_tcp, I use memset to clear entire new tcp.
This not only saves a few bytes of code, but lowers the chances
of future bugs where some data "leaks out" into new tcb's
from old ones because we forgot to re-initialize it.

* strace.c (expand_tcbtab): Simplify this function. No logic changes.
  (alloc_tcb): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-22 12:41:57 +02:00
e7c9024acf Trivial fixes
* process.c (internal_fork): Remove conditionals which make no difference
  (we return 0 on both branches of these ifs).
* util.c: Fix indentation of an ifdef.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-22 00:09:25 +02:00
081e72f41a Fix build when libaio-devel is not available
* desc.c: Do not compile code that uses struct iocb unless
HAVE_LIBAIO_H is set.

Reported-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-21 15:11:57 +00:00
d1d182209e tests: finish ptrace_setoptions_* merge
* tests/Makefile.am (TESTS): Merge ptrace_setoptions_*.
* tests/ptrace_setoptions: Check for Linux kernel > 2.6.
2011-06-21 15:03:17 +00:00
b56d6d3bfe Remove write-only nchildren member from struct tcb
* defs.h: Remove nchildren member from struct tcb.
* process.c (handle_new_child): Remove inc/decrements of tcp->nchildren.
  (internal_fork): Likewise.
* strace.c (startup_attach): Likewise.
  (droptcb): Likewise.
  (alloc_tcb): Remove initialization of tcp->nchildren.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-21 16:06:28 +02:00
8f0f14b6da Fix tests/ptrace_setoptions_* to match last fix in ptrace options code
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-21 15:55:07 +02:00
f0a5f6d710 Remove write-only nzombies member from struct tcb
* defs.h: Remove nzombies member from struct tcb.
* strace.c (droptcb): Remove "tcp->parent->nzombies++".
  (alloc_tcb): Remove "tcp->nzombies = 0".

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-21 15:34:40 +02:00
f44cce48bb Fix regression introduced by "Properly handle real SIGTRAPs" change
Commit 3454e4b463
introduced a bug: sometimes, TRACECLONE/TRACE[V]FORK opts were not set.
The check (tcp->parent == NULL) in old code was meant to check
"if we are not a child created by auto-attach" - in this case,
options need to be set on the child; otherwise they are inherited
and do not need to be set.
I misunderstood the check and if tcp->parent is not NULL, I was
setting only ptrace_setoptions_for_all bits.
This change fixes the problem. Since the fixed logic makes it
unnecessary to keep two sets of options in separate variables,
I merge them back into one variable, ptrace_setoptions.

* defs.h: Merge ptrace_setoptions_followfork and ptrace_setoptions_for_all
  into one variable, ptrace_setoptions.
* strace.c: Likewise.
  (test_ptrace_setoptions_followfork): Use ptrace_setoptions variable.
  (test_ptrace_setoptions_for_all): Likewise.
  (main): Likewise.
* process.c (internal_fork): Likewise.
  (internal_exec): Likewise.
* strace.c (trace): Fix the bug where different options were set
  depending on "tcp->parent == NULL" condition. Add a comment
  which makes it more clear why this condition is checked.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-21 14:34:10 +02:00
0df9ed47af Do not suspend waitpid.
strace used to suspend waitpid until there is a child
for waitpid'ing process to collect status from.
Apparently, it was done because in some very old kernels
(circa 2002 or even earlier) there were ptrace bugs which
were making waitpid in real parent to not see children.
This kernel bug is fixed long ago. This change removes the workaround.
test/wait_must_be_interruptible.c is a test program which
illustrates why without this change strace changes
programs's behavior.

* defs.h: Delete waitpid and nclone_waiting members from from struct tcb.
  Remove declaration of internal_wait().
* process.c (internal_wait): Remove this function.
* strace.c (alloc_tcb): Do not set tcp->nclone_waiting.
  (resume): Remove this function.
  (resume_from_tcp): Remove this function.
  (detach): Do not call resume_from_tcp().
  (handle_group_exit): Do not call resume_from_tcp().
* syscall.c (internal_syscall): Do not call internal_wait().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-18 11:38:51 +02:00
dfcd741a5a Enhance io_submit() decoding
strace didn't decode important fields in the iocb passed to io_submit.
This patch changes the code to dump them all.  Also it prefixes the fields
with names to make it easier to read.

* desc.c (iocb_cmd_lookup, print_common_flags): New functions.
(sys_io_submit): New iocb decoder.
2011-06-13 23:03:11 +00:00
8884968a46 Add argument to tprint_iov() specifying whether to decode each iovec
* defs.h (tprint_iov): Add decode_iov argument.
* io.c (tprint_iov): Implement new decode_iov argument.
(sys_readv, sys_writev, sys_sendfile, sys_preadv, sys_pwritev): Update
tprint_iov calls.
* net.c (do_msghdr): Likewise.
2011-06-13 22:58:44 +00:00
fcda7a5f4f Introduce ARRAY_SIZE() macro
* defs.h (ARRAY_SIZE): New macro.
* ioctl.c: Use it.
* pathtrace.c (pathmatch, storepath): Likewise.
* process.c (printpriv): Likewise.
* signal.c: Likewise.
* syscall.c: Likewise.
2011-06-13 21:58:43 +00:00
732f39656d Fix decoding of timer id returned by timer_create
* time.c (sys_timer_create): The kernel returns a integer, not a
pointer for the timer id in the memory pointed to by timer_id.
2011-06-13 21:37:40 +00:00
2ea2ab0590 Add test for PTRACE_O_TRACESYSGOOD
* tests/ptrace_setoptions_for_all: New file.
* tests/Makefile.am (TESTS): Add ptrace_setoptions_for_all.
2011-06-09 18:28:02 +00:00
30ecdcc121 tests: update test for linux kernel version
* tests/ptrace_setoptions_followfork: Check for Linux kernel > 2.6.
2011-06-09 18:23:09 +00:00
e254e53d8c Update ptrace_setoptions test
The test have to be adjusted after commit v4.6-5-g3454e4b.

* ptrace_setoptions: Update grep pattern, rename to
ptrace_setoptions_followfork.
* tests/Makefile.am (TESTS): Rename ptrace_setoptions to
ptrace_setoptions_followfork.
2011-06-09 16:10:07 +00:00
44d053218b * strace.c (verror_msg): Rewrite without use of heap memory allocation 2011-06-09 15:50:41 +00:00
3e90b29929 Fix MIPS syscall entries
* linux/mips/syscallent.h: Remove duplicate entries for 4336, 4337,
and 4338 syscall numbers.

Reported-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-09 15:16:01 +00:00
f07367954c Don't display bogus parameter for sigreturn syscall
* linux/*/syscallent.h: For those arches which use sys_sigreturn,
not printargs, to show [rt_]sigreturn syscall, change number of arguments
from 1 to 0: sys_sigreturn function doesn't use syscall parameters.
(I guess kernel doesn't actually _have_ any parameters for this syscall,
at least on these architectures). Do the same change for I386 and x86-64
even though they use printargs: I looked at kernel code and syscall
definitely doesn't have any parameters on these arches.
(I hesitate to change 1 to 0 params for arches I don't know -
it is remotely possible some of them do have a parameter for this syscall).

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-09 01:43:22 +02:00
56a52984ae Optimize sigreturn handling
* signal.c (sys_sigreturn): move stack pointer variables,
and for SPARC and MIPS, stack pointer and sigmask reading code
into "if (entering) ..." block, because it is only needed
in this branch; load tcp->u_arg[1] into sigmask for display
_after_ we know for sure u_arg[1] does contain valid sigmask
(IOW: perform operation only when we know we will need the result)

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-09 01:36:29 +02:00
4660fe610c Do not call umoven to fetch parameters if we have zero params
* syscall.c [I386] (syscall_enter): Do not call umoven
to fetch zero bytes. This is just an optimization.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-09 01:32:23 +02:00
eccc48c63e "Modernize" four old-style function parameter declarations
* signal.c (signame, long_to_sigset, printsigmask, printsignal):
Convert old-style C function definitions to a "modern" form.
This does not change any actual code.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-09 01:28:11 +02:00
facd45b255 Fix sigreturn decoding on MIPS
The "return 0" line was accidentally deleted circa 2007,
which made sigreturn on MIPS always display "= 0" return
instead of more informative " = ? (mask now [MASK])".

* strace.c (sys_sigreturn): Add wrongly deleted "return 0" line

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-09 01:22:10 +02:00
e62df004ce Print at least one space between SYSCALL(ARGS) and = RESULT if tracee is killed
We already do it in the normal case, but in rare code path where
tracee is gone (SIGKILLed?) sometimes we were printing this:
"SYSCALL(ARGS <unavailable>)= ? <unavailable>" - note jammed together ")=".
test/sigkill_rain.c can be used to verify the fix.

* strace.c (printleader): add a space after ")" in " <unavailable>)"

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-08 16:15:04 +02:00
7c57be862b Add fflush after printf in test/sigkill_rain.c
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-08 16:07:03 +02:00
8158e7716c Update test/* directory, it seem to be a bit bit-rotted
Added README; modified sigkill_rain.c to be more understandable,
made clone.c compile; added wait_must_be_interruptible.c test;
updated Makefile and .gitignore.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-08 14:08:59 +02:00
b63256e69b Whitespace cleanups. no code changes.
* bjm.c: Fix tabulation (such as extra spaces before tabs),
convert punctuation where it deviates from prevalent form
elsewhere in strace code, convert sizeof and offsetof where
it deviates from from prevalent form, remove space between
function/macro/array names and (parameters) or [index],
add space between "if" and (condition), correct non-standard
or wrong indentaion.
* defs.h: Likewise
* desc.c: Likewise
* file.c: Likewise
* ipc.c: Likewise
* linux/arm/syscallent.h: Likewise
* linux/avr32/syscallent.h: Likewise
* linux/hppa/syscallent.h: Likewise
* linux/i386/syscallent.h: Likewise
* linux/ioctlsort.c: Likewise
* linux/m68k/syscallent.h: Likewise
* linux/microblaze/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/tile/syscallent.h: Likewise
* linux/x86_64/syscallent.h: Likewise
* mem.c: Likewise
* net.c: Likewise
* pathtrace.c: Likewise
* process.c: Likewise
* signal.c: Likewise
* sock.c: Likewise
* strace.c: Likewise
* stream.c: Likewise
* sunos4/syscall.h: Likewise
* sunos4/syscallent.h: Likewise
* svr4/syscall.h: Likewise
* svr4/syscallent.h: Likewise
* syscall.c: Likewise
* system.c: Likewise
* test/childthread.c: Likewise
* test/leaderkill.c: Likewise
* test/skodic.c: Likewise
* time.c: Likewise
* util.c: Likewise

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-06-07 12:13:24 +02:00
7a5b08fb26 ARM EABI: fix 64-bit syscall's arguments decoding
ARM OABI and ARM EABI have different function parameters passing rules.
With EABI, 64-bit function parameters passed in registers are aligned to
an even-numbered register instead of using the next available pair, see
http://lkml.org/lkml/2006/1/12/175
This rule also applies to syscall's arguments.

* linux/arm/syscallent.h (pread, pwrite, truncate64, ftruncate64,
readahead, preadv, pwritev): Fix number of arguments.
* util.c (printllval): Align 64bit argument to 64bit boundary on
__ARM_EABI__.

Reported-by: Damir Shayhutdinov <damir@altlinux.org>
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
2011-05-30 21:14:55 +00:00
3087dd6780 Linux: implement decoding of preadv and pwritev syscalls
* io.c [LINUX && HAVE_SYS_UIO_H] (sys_preadv, sys_pwritev): New functions.
* linux/syscall.h (sys_preadv, sys_pwritev): Declare them.
* linux/*/syscallent.h: Use them.

Signed-off-by: Damir Shayhutdinov <damir@altlinux.ru>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
2011-05-30 21:14:55 +00:00
1201426dd4 "Modernize" all old-style function parameter declarations
* bjm.c: Convert all remaining old-style C function definitions
to a "modern" form. This does not change any actual code.
* io.c: Likewise
* ioctl.c: Likewise
* net.c: Likewise
* proc.c: Likewise
* process.c: Likewise
* signal.c: Likewise
* sock.c: Likewise
* strace.c: Likewise
* stream.c: Likewise
* syscall.c: Likewise
* system.c: Likewise
* time.c: Likewise
* util.c: Likewise

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-05-30 14:00:14 +02:00
75422766d5 Cleanups on top of "handle SIGTRAP properly" change,
based on Dmitry's comments.

* defs.h ([p]error_msg[_and_die]): Declare new functions.
* strace.c (SYSCALLTRAP): Rename to syscall_trap_sig.
([p]error_msg[_and_die]): Define new functions.
(strace_tracer_pid): New variable, it controls which pid will
do cleanup on exit via [p]error_msg_and_die.
(main): Set strace_tracer_pid to our initial pid.
(startup_attach): Change strace_tracer_pid if we are in -D mode.
(test_ptrace_setoptions_for_all): Minor changes to logic,
such as better diagnostic messages.
2011-05-27 14:36:01 +02:00
35aba6a8dd Identifier "errno" may be a macro, it's unsafe to use it
* strace.c (strerror): Rename parameter errno to err_no
2011-05-25 15:33:26 +02:00
f8bc0655a0 Don't perform TCB_WAITEXECVE wait if not needed.
* defs.h (ptrace_setoptions_for_all): Expose this variable.
* strace.c (ptrace_setoptions_for_all): Remove "static".
* process.c (internal_exec): Don't set TCB_WAITEXECVE bit
if we know that post-execve SIGTRAP is not going to happen.
2011-05-24 20:30:24 +02:00
3454e4b463 Properly handle real SIGTRAPs.
* defs.h (ptrace_setoptions): Variable renamed to ptrace_setoptions_followfork.
* process.c (internal_fork): Ditto.
* strace.c (ptrace_setoptions_for_all): New variable.
(SYSCALLTRAP): New variable.
(error_msg_and_die): New function.
(test_ptrace_setoptions_for_all): New function.
(main): Call test_ptrace_setoptions_for_all() at init.
(handle_ptrace_event): Handle PTRACE_EVENT_EXEC (by ignoring it).
(trace): Check events and set ptrace options without -f too.
Check WSTOPSIG(status) not for SIGTRAP, but for SYSCALLTRAP.
2011-05-23 21:29:03 +02:00
1cd5371d50 Blackfin: update syscall list
Signed-off-by: Mike Frysinger <vapier@gentoo.org>

* linux/bfin/syscallent.h: Add name_to_handle_at, open_by_handle_at,
clock_adjtime, and syncfs syscalls.
2011-04-24 19:43:13 +00:00
96e1f48087 linux: add new EHWPOISON errno
Signed-off-by: Mike Frysinger <vapier@gentoo.org>

* linux/errnoent.h: Change ERRNO_133 to EHWPOISON.
2011-04-24 19:43:03 +00:00
8a08277d13 Add ability to print file descriptor paths and filter by those paths
* pathtrace.c: New file, implements matching syscall arguments to
user-specified file paths.
* Makefile.am (strace_SOURCES): Add pathtrace.c.
* defs.h (TCB_FILTERED, filtered): New defines.
(getfdpath, pathtrace_select, pathtrace_match, show_fd_path,
tracing_paths): New declarations.
* strace.c (show_fd_path, tracing_paths): New global variables.
(usage, main): Implement handling of -y and -P options.
* strace.1: Add descriptions of -y and -P options.
* syscall.c (trace_syscall_entering): Add path matching logic to the
print/noprint decision and set the TCB_FILTERED bit appropriately.
(trace_syscall_exiting): Use filtered() macro that checks the
TCB_FILTERED bit to determine print/noprint status.
* util.c (printfd): Use getfdpath().
2011-04-08 20:47:56 +00:00
4cee0af77b Fix BLKTRACESTOP definition
* block.c: Fix typo in the check for BLKTRACESTOP.
Reported by Gabor Z. Papp.
2011-04-07 19:58:10 +00:00
03aefdadb2 Ensure that PTRACE_GETSIGINFO et al are always defined on Linux
* configure.ac (AC_CHECK_DECLS): Add PTRACE_* constants.
* defs.h [LINUX]: Define those PTRACE_* constants that are not provided
by <sys/ptrace.h>.
2011-03-15 17:19:09 +00:00
4e4fcafe9e * CREDITS.in: Fix typo. 2011-03-15 15:46:52 +00:00
bb668a57b4 Update PTRACE_* constants
* process.c (ptrace_cmds): Add PTRACE_GETREGSET and PTRACE_SETREGSET.
2011-03-14 21:58:59 +00:00
50e69cbe74 Prepare for 4.6 release
* NEWS: Update for 4.6 release.
* configure.ac: Version 4.6.
* debian/changelog: 4.6-1.
* strace.spec: 4.6-1.
2011-03-14 15:39:36 +00:00
9004e12a91 linux/ioctlent: unify them all
This unifies all the ioctlent.h's in the linux subdir while still
allowing each arch to maintain its own minor list.

The basic method is:
- each arch has linux/<arch>/ioctlent.h.in which defines only the
arch-specific ioctls;
- linux/ioctlent.h.in which defines only the common ioctls;
- at build time, these two headers are combined and sorted to produce
the linux/ioctlent.h file.

This also requires a little tweaking of the include files since the
common ioctlent.h is a built file.

* linux/ioctlent.h: Split into linux/ioctlent.h.in and
linux/i386/ioctlent.h.in, remove asm entries from the former, remove
non-asm entries from the latter.
* linux/alpha/ioctlent.h: Rename to linux/alpha/ioctlent.h.in, remove
non-asm entries.
* linux/bfin/ioctlent.h: Rename to linux/bfin/ioctlent.h.in, remove
non-asm entries.
* linux/hppa/ioctlent.h: Rename to linux/hppa/ioctlent.h.in, remove
non-asm entries.
* linux/ia64/ioctlent.h: Rename to linux/ia64/ioctlent.h.in, remove
non-asm entries.
* linux/mips/ioctlent.h: Rename to linux/mips/ioctlent.h.in, remove
non-asm entries.
* linux/powerpc/ioctlent.h: Rename to linux/powerpc/ioctlent.h.in,
remove non-asm entries.
* linux/s390/ioctlent.h: Rename to linux/s390/ioctlent.h.in, remove
non-asm entries.
* linux/sh/ioctlent.h: Rename to linux/sh/ioctlent.h.in, remove
non-asm entries.
* linux/sparc/ioctlent.h: Rename to linux/sparc/ioctlent.h.in, remove
non-asm entries.
* linux/arm/ioctlent.h.in: New file.
* linux/avr32/ioctlent.h.in: Likewise.
* linux/i386/ioctlent.h.in: Likewise.
* linux/m68k/ioctlent.h.in: Likewise.
* linux/microblaze/ioctlent.h.in: Likewise.
* linux/tile/ioctlent.h.in: Likewise.
* linux/x86_64/ioctlent.h.in: Likewise.
* linux/s390x/ioctlent.h.in: Include ioctlent.h.in instead of
ioctlent.h.
* linux/sh64/ioctlent.h.in: Likewise.
* linux/sparc64/ioctlent.h.in: Likewise.
* linux/arm/ioctlent1.h: Update ioctlent.h include.
* linux/powerpc/ioctlent1.h: Likewise.
* linux/sparc/ioctlent1.h: Likewise.
* linux/sparc64/ioctlent1.h: Likewise.
* linux/x86_64/ioctlent1.h: Likewise.
* Makefile.am (AM_CPPFLAGS): Add -I$(builddir)/$(OS).
(EXTRA_DIST): Update.
[MAINTAINER_MODE && LINUX]: Convert from ioctlent_h to ioctlent_h_in.
[LINUX]: Add $(builddir)/$(OS)/ioctlent.h generation rules.
* .gitignore: Add linux/ioctlent.h.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-14 15:32:38 +00:00
6b7a261ff8 Show more details about signals received by traced processess
* strace.c [!USE_PROCFS] (trace): Differentiate output format depending
on PTRACE_GETSIGINFO success or failure.  In the former case, use
printsiginfo() to show more details about received signal.
2011-03-10 22:25:03 +00:00
c15dfc7961 Get rid of PT_GETSIGINFO
* strace.c [!USE_PROCFS] (trace): Assume that PTRACE_GETSIGINFO is
available.  Replace PT_GETSIGINFO with PTRACE_GETSIGINFO.  Use
PTRACE_GETSIGINFO for all signals.
2011-03-10 22:25:03 +00:00
b41e1c90f0 Enhance decoding of kernel-generated signals
* signal.c (printsiginfo) [LINUX]: Do not print uninteresting
zero-initialized fields.
2011-03-10 23:14:47 +00:00
6d9e8e82f8 Fix decoding of user-generated signals
* signal.c [LINUX] (SI_FROMUSER): Define.
[LINUX || SVR4] (printsiginfo) [SI_FROMUSER]: Enhance decoding.
2011-03-10 22:18:56 +00:00
7d4bff1851 Recognize SI_KERNEL and SI_ASYNCNL
* signal.c [LINUX] (SI_KERNEL, SI_ASYNCNL): Define.
[LINUX || SVR4] (siginfo_codes): Add entries for SI_KERNEL and
SI_ASYNCNL, reorder entries.
2011-03-10 21:41:34 +00:00
6c0e2fc552 Take all git branches into account for generation of CREDITS file
* Makefile.am: Make CREDITS target depend on all git branches.
2011-03-05 14:36:48 +00:00
3138213bc9 Fix decoding of file descriptors
* defs.h (printfd): New function prototype.
* util.c (printfd): New function.
* file.c (print_dirfd): Update prototype to use printfd().
(sys_openat, sys_faccessat, sys_newfstatat, sys_mkdirat, sys_linkat,
sys_unlinkat, sys_readlinkat, sys_renameat, sys_fchownat, sys_fchmodat,
sys_futimesat, sys_utimensat, sys_mknodat): Update use of print_dirfd().
(sys_lseek, sys_llseek, sys_readahead, sys_ftruncate, sys_ftruncate64,
sys_fstat, sys_fstat64, sys_oldfstat, sys_fstatfs, sys_fstatfs64,
sys_fchdir, sys_fchroot, sys_linkat, sys_fchown, sys_fchmod, sys_fsync,
sys_readdir, sys_getdents, sys_getdirentries, sys_fsetxattr,
sys_fgetxattr, sys_flistxattr, sys_fremovexattr, sys_fadvise64,
sys_fadvise64_64, sys_inotify_add_watch, sys_inotify_rm_watch,
sys_fallocate): Use printfd() for decoding of file descriptors.
* desc.c (sys_fcntl, sys_flock, sys_close, sys_dup, do_dup2,
decode_select, sys_epoll_ctl, epoll_wait_common): Use printfd() for
decoding of file descriptors.
* io.c (sys_read, sys_write, sys_readv, sys_writev, sys_pread,
sys_pwrite, sys_sendfile, sys_sendfile64, sys_pread64, sys_pwrite64,
sys_ioctl): Likewise.
* mem.c (print_mmap, sys_mmap64): Likewise.
* signal.c (do_signalfd): Likewise.
* stream.c (decode_poll): Likewise.
* time.c (sys_timerfd_settime, sys_timerfd_gettime): Likewise.
Based on patch from Grant Edwards <grant.b.edwards@gmail.com>.
2011-03-04 02:08:02 +00:00
9cd385010e Print shutdown(2) modes as SHUT_* constants
* net.c (shutdown_modes): New xlat structure.
(sys_shutdown): Use shutdown_modes to decode 2nd syscall argument.
2011-03-03 18:49:33 +00:00
1e1405a4ac Fix decoding of inotify_init1() flags
* file.c (inotify_init_flags): New xlat structure.
(sys_inotify_init1): Use it instead of open_mode_flags.
2011-03-03 17:33:25 +00:00
d475c06134 Fix struct xlat initialization bugs
* file.c (inotify_modes): Terminate with NULL entry.
* net.c (sock_type_flags): Make this array static.
(socketlayers): Add a comment that this array should remain not
NULL-terminated.
2011-03-03 01:02:41 +00:00
f9a84ef39f tests: avoid SIGPIPE
* tests/ptrace_setoptions: Replace "grep -q" with "grep > /dev/null".
The former may result to strace being killed by SIGPIPE, which in
certain configuratons may lead to generation of a core file.
Suggested by Mike Frysinger.
2011-03-03 00:10:20 +00:00
e689e04c10 tests: do not make missing /usr/bin/time a failure
* tests/init.sh (framework_skip_): New function.
(check_prog): Use it instead of framework_failure_.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-01 00:54:06 +00:00
525a39a01a Generate an xz tar archive of the distribution
* configure.ac (AM_INIT_AUTOMAKE): Replace dist-bzip2 with dist-xz.
* Makefile.am: Update srpm target.
* make-dist: Update for dist-xz.
* strace.spec: Update Source tag.
* debian/watch: Update regexp.
* .gitignore: Add strace-*.tar.xz.
2011-02-27 14:05:58 +00:00
983e875c1c Use "make check" in debian/rules and strace.spec
* debian/control: Update Build-Depends.
* debian/rules: Run "make check".
* strace.spec: Update BuildRequires. Run "make check" in %check section.
2011-02-27 10:16:41 +00:00
4e4b5adfab Implement two basic "strace -f" tests
* Makefile.am (SUBDIRS): Add tests.
* configure.ac (AC_CONFIG_FILES): Add tests/Makefile.
* tests/.gitignore: New file.
* tests/Makefile.am: Likewise.
* tests/init.sh: Likewise.
* tests/ptrace_setoptions: Likewise.
* tests/strace-f: Likewise.
2011-02-27 00:28:50 +00:00
6ae37bf0eb ppc, s390, sparc: regenerate ioctlent.h files
* linux/powerpc/ioctlent.h: Regenerated using Fedora 15 kernel headers.
* linux/s390/ioctlent.h: Likewise.
* linux/sparc/ioctlent.h: Likewise.
2011-02-26 14:39:21 +00:00
ff5c42aae8 Remove redundant ioctlent.h files
* linux/s390x/ioctlent.h: Replace old contents with include of
s390/ioctlent.h file.
* linux/sparc64/ioctlent.h: Replace old contents with include of
sparc/ioctlent.h file.
2011-02-26 14:32:12 +00:00
609b58ca49 ioctlsort: sync with ioctl_lookup()
* linux/ioctlsort.c (main): Use NR and TYPE bits only, to sync with
ioctl_lookup() which looks at these bits only.
2011-02-25 23:29:01 +00:00
a6ca968003 Remove obsolete .cvsignore files
* test/.cvsignore: Rename to test/.gitignore.
* */.cvsignore, */*/.cvsignore: Removed.
2011-02-25 16:53:50 +00:00
796d3a8679 Ignore generated intermediate header files
* .gitignore: Add ioctls.h and ioctldefs.h.
2011-02-25 16:47:51 +00:00
59138a2b0d Generate much of the CREDITS file from git log
* CREDITS.in: New file, derived from CREDITS, without names of
those who are listed as git log 'Author:'s.
* CREDITS: Remove file.
* Makefile.am [MAINTAINER_MODE] (CREDITS): New rule.
* .gitignore: Add CREDITS.
* .mailmap: New file, required to map git author names and email
addresses to canonical/preferred form.
2011-02-24 01:51:15 +00:00
e9a06b7ad4 sparc: fix compilation warning
* file.c [!HAVE_LONG_LONG_OFF_T] (realprintstat): Cast st_size
to unsigned long.
2011-02-23 16:16:50 +00:00
0afbf85dec Update the list of files that must be distributed
* Makefile.am (EXTRA_DIST): Add debian/source/format, debian/watch,
linux/ia64/signalent.h, linux/powerpc/ioctlent1.h,
linux/powerpc/syscallent1.h, linux/powerpc/errnoent1.h,
linux/powerpc/signalent1.h.
2011-02-23 12:43:46 +00:00
d9a4b0ab00 Fix compilation warning reported by gcc -Wunused-but-set-variable
* process.c (printwaitn) [!SUNOS4]: Do not define "exited" variable.
2011-02-23 00:27:12 +00:00
f72418c876 ioctlsort: zero pad ioctl codes to 4 places
Zero padding the ioctl number will allow simple sorting via shell scripts.

* linux/ioctlsort.c (main): Output ioctl codes zero padded.
* linux/ioctlent.h: Regenerated.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-02-22 10:23:11 +00:00
22485b702b Update mount flags to latest linux
* system.c (MS_RELATIME, MS_KERNMOUNT, MS_I_VERSION,
MS_STRICTATIME, MS_BORN): Define.
(mount_flags): Add MS_RELATIME, MS_KERNMOUNT, MS_I_VERSION,
MS_STRICTATIME, MS_BORN.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-02-22 10:22:13 +00:00
c36c3033fb Sync debian/changelog and strace.spec with packages
* debian/changelog: Sync with 4.5.20-2.
* strace.spec: Likewise.
2011-02-22 10:32:50 +00:00
7bab9fcc44 Add TRACE_DESC|TRACE_FILE flags to fanotify_* sysentries
* linux/*/syscallent.h: Add TD flag to fanotify_init.  Add TD|TF flags
to fanotify_mark.
2011-02-20 20:24:52 +00:00
2bc744d7c7 Fix flags of fallocate sysentries
* linux/*/syscallent.h: Fix sys_fallocate flags.
2011-02-20 20:17:00 +00:00
b9839ef129 Add TRACE_DESC flag to epoll_create* sysentries
* linux/*/syscallent.h: Add TD flag to sys_epoll_create and
sys_epoll_create1.
2011-02-20 19:58:09 +00:00
1e43961de5 Add TRACE_DESC flag to fgetxattr, flistxattr, and fremovexattr sysentries
* linux/*/syscallent.h: Add TD flag to sys_fgetxattr, sys_flistxattr,
and fremovexattr.
2011-02-20 19:50:28 +00:00
612e0920c5 Add TRACE_FILE flag to swapoff sysentries
* linux/*/syscallent.h: Add TF flag to sys_swapoff.
2011-02-20 19:14:10 +00:00
fdbe3c513a Add TRACE_DESC flag to fadvise64* sysentries
* linux/*/syscallent.h: Add TD flag to sys_fadvise64 and
sys_fadvise64_64.
2011-02-20 15:23:22 +00:00
bde8033605 Add TRACE_DESC flag to mmap, mmap2, and old_mmap sysentries
* linux/*/syscallent.h: Add TD flag to sys_mmap and sys_old_mmap.
2011-02-20 15:10:32 +00:00
b2eaa8d7ed Do not initialize native_scno on platforms with only one personality
* linux/bfin/syscallent.h: Remove redundant native_scno initialization.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
2011-02-20 13:25:04 +00:00
e51a87c0dc Add LOOP_* ioctls defined in linux/loop.h
* linux/ioctlent.sh: Add LOOP_* ioctls (0x4C..) defined in linux/loop.h
header file.
* linux/ioctlent.h: Regenerated.
Reported by Mike Frysinger.
2011-02-20 12:25:12 +00:00
2fabd0eaf0 Fix PTRACE_GETEVENTMSG usage and enhance test_ptrace_setoptions()
* strace.c (handle_ptrace_event): Fix PTRACE_GETEVENTMSG usage.
(test_ptrace_setoptions): Test that PTRACE_GETEVENTMSG works properly.
2011-02-19 21:33:50 +00:00
330a895bbd linux/sparc: move to common syscall.h
Rather than constantly deal with the sparc/syscall.h going stale, merge
the few sparc-specific pieces into the linux/syscall.h header.

* linux/syscall.h: Add sparc-specific pieces from sparc/syscall.h.
* Makefile.am (EXTRA_DIST): Remove linux/sparc/syscall.h and
linux/sparc64/syscall.h.
* linux/sparc/syscall.h, linux/sparc64/syscall.h: Deleted.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-02-19 21:40:20 +00:00
e44a4a262a sparc: add new funcs to syscall.h
Sync missing defs from the common syscall.h here.

* linux/sparc/syscall.h: Add sys_setfsuid, sys_pread64, and
sys_pwrite64 prototypes.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-02-19 20:42:25 +00:00
71a78bc739 sparc: punt unused syscall.h.2
I can't find any mention of this header actually being used.
Seems to be a really old copy of the common syscall.h.

* Makefile.am (EXTRA_DIST): Remove linux/sparc/syscall.h.2.
* linux/sparc/syscall.h.2: Deleted.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-02-19 20:31:49 +00:00
9fdbee6dea Fix raw exit_group(2) decoding
* syscall.c (trace_syscall_entering): Check for sys_exit instead of
SYS_exit to handle exit_group(2) as well as _exit(2).
2011-02-19 00:02:27 +00:00
bd13645efb Optimize known_scno()
* syscall.c (known_scno): Do not check for native_scno field on
platforms that support only one personality.
2011-02-18 23:19:47 +00:00
fde119c792 * process.c (internal_exit) [IA64]: Remove redundant check. 2011-02-18 23:16:20 +00:00
65c1a81f6a Fix biarch support in IO dumping
* syscall.c (dumpio): Switch on tcp->sys_func instead of tcp->scno
for more reliable results.
2011-02-09 00:39:47 +00:00
10a16a76fc Simplify tprintf() declaration
* defs.h (tprintf): Simplify declaration.
2011-02-09 00:03:11 +00:00
7655fa0907 * defs.h (SYSCALL_NEVER_FAILS): Fix typo. 2011-02-05 01:07:08 +00:00
50a218d4ac Fix decoding of get[ug]id, gete[ug]id and setfs[ug]id return values
* defs.h (SYSCALL_NEVER_FAILS): New syscall flag.
* linux/dummy.h: Change redirection for sys_get[ug]id, sys_gete[ug]id
and setfs[ug]id.
* linux/*/syscallent.h: Set SYSCALL_NEVER_FAILS flag for get[ug]id,
gete[ug]id and setfs[ug]id syscalls.
* process.c [LINUX] (sys_getuid, sys_setfsuid): New functions.
* syscall.c (NF): New shorthand macro for use in syscallent.h files.
(get_error): Check SYSCALL_NEVER_FAILS flag.
Reported by Марк Коренберг <socketpair@gmail.com>.
2011-01-19 00:52:15 +00:00
62d0428cf5 * linux/*/syscallent.h: Fix typo in sys_newfstatat syscall flags. 2011-01-19 00:21:07 +00:00
ae6a5f7c4f Blackfin: update ioctl list
* linux/bfin/ioctlent.h: Sync with latest kernel sources.
2011-01-18 00:14:51 +00:00
4dd54320b9 Fix stat64 decoding on mips
* linux/mips/syscallent.h: Use sys_stat64() to decode stat64 syscall.
This fixes Debian bug #599028.
2011-01-17 23:24:54 +00:00
e9e3d70fa1 Update linux/*/syscallent.h files to match Linux kernel v2.6.37
* linux/alpha/syscallent.h: Add hooks for fanotify_init, fanotify_mark,
and prlimit64.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/arm/syscallent.h: Add hooks for accept4, fanotify_init,
fanotify_mark, and prlimit64.
* linux/hppa/syscallent.h: Add hook for prlimit64.
2011-01-17 22:39:33 +00:00
be284cae11 block.c: cleanup
* block.c: Include <inttypes.h>.
(print_blkpg_req): Always decode struct blkpg_ioctl_arg.
Robustify decoding of strings.
(block_ioctl): Do not decode return values passed by pointers on exit
from failed syscalls.
Use format macros from inttypes.h to print values of type uint64_t.
2011-01-16 23:07:51 +00:00
4ef6db489a Add block ioctl support
* block.c: New file.
* Makefile.am (strace_SOURCES): Add it.
* defs.h [LINUX] (block_ioctl): New function.
* ioctl.c (ioctl_decode) [LINUX]: Use it to decode HDIO_* and BLK*
ioctls.
Patch by Jeff Mahoney <jeffm@suse.com>
2011-01-15 20:15:31 +00:00
7fea79b760 Parse SOL_SCTP socket options
* configure.ac (AC_CHECK_HEADERS): Add netinet/sctp.h.
* net.c [HAVE_NETINET_SCTP_H]: Include <netinet/sctp.h>.
[SOL_SCTP] (socksctpoptions): New xlat structure.
(sys_getsockopt, printsockopt): Parse SOL_SCTP options.
2011-01-14 17:47:53 +00:00
ce9e0f4c7f * net.c (socketlayers): Add more SOL_* constants from linux/socket.h 2011-01-14 17:47:53 +00:00
1c3031b1f0 strace.1: fix misleading italics
* strace.1: Use bold instead of italics for "-e trace=" keywords.
This fixes Debian bug #589323.
2011-01-14 17:17:20 +00:00
4eb1b51022 Update linux/ioctlent.h
* linux/ioctlent.h: Regenerate using linux v2.6.37 headers.
2011-01-14 16:09:40 +00:00
ebc2f28523 Add HDIO_* ioctls defined in linux/hdreg.h
* linux/ioctlent.sh: Add HDIO_* ioctls (0x03..) defined in
linux/hdreg.h header file.
This fixes Debian bug #450953.
2011-01-14 15:30:10 +00:00
21ccf5ed07 Test PTRACE_O_TRACECLONE and PTRACE_O_TRACEVFORK along with PTRACE_O_TRACEFORK
* strace.c (test_ptrace_setoptions): Add PTRACE_O_TRACECLONE and
PTRACE_O_TRACEVFORK to PTRACE_SETOPTIONS call, to test exactly
the same set of options that is going to be used later in trace().
2011-01-13 14:49:39 +00:00
d48c6b91e2 * net.c (protocols): Add more IPPROTO_* constants defined in netinet/in.h 2011-01-10 01:14:38 +00:00
efa8bda2e7 * net.c (protocols): Add IPPROTO_GRE, IPPROTO_SCTP and IPPROTO_UDPLITE. 2011-01-10 00:28:55 +00:00
d64184f9aa sh: Add entry for not-multiplexed accept4
* linux/sh/syscallent.h: Add specific entry for not-multiplexed accept4
available in kernel mainline since v2.6.37-rc6, see
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=21b6e4c7106b2d68a6710506d8706608272fd78b

Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2011-01-10 00:10:51 +00:00
9b977d1067 sh: Add entries for not-multiplexed socket calls
* linux/sh/syscallent.h: Add specific entries for not-multiplexed
socket calls (available in kernel mainline since v2.6.37-rc1)

Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2010-12-14 00:14:33 +00:00
b9c525790c sh: Fix compilation warning in do_pipe due to missing prototype
* defs.h [SH]: Make getrval2 prototype visible to do_pipe
and fix the following compiler warning:
.../net.c: In function 'do_pipe':
.../net.c:1632: warning: implicit declaration of function 'getrval2'
.../net.c:1632: warning: format '%lu' expects type 'long unsigned int',
but argument 3 has type 'int'

Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2010-12-14 00:14:33 +00:00
696381ec63 Fix build on uClibc
* defs.h [LINUX]: Define PTRACE_GETEVENTMSG macro.
Patch by Douglas Mencken <dougmencken@gmail.com>.
2010-12-14 00:02:35 +00:00
8044bc1463 Fix strace -f -o '|command' hangup
* strace.c (main): Call test_ptrace_setoptions() before parsing
-o option, otherwise a forked command will cause a hangup inside
test_ptrace_setoptions().
2010-12-07 12:50:49 +00:00
bdafa1a905 Output diagnostics to stderr
* syscall.c (get_scno): Output information about changes in
personality mode to stderr.  Reported by Pádraig Brady.
2010-12-03 17:28:11 +00:00
e3d4b68a7b Recognize more clone flags
* process.c (CLONE_*): Define more flags from linux v2.6.25.
(clone_flags): Add entries for them.
Proposed by <zhangyanfei@cn.fujitsu.com>.
2010-12-03 17:27:59 +00:00
0ddd8addef Decode struct ucred for getsockopt SO_PEERCRED
* net.c (sys_getsockopt): Decode SO_PEERCRED.
Proposed by Arkadiusz Miśkiewicz <arekm@maven.pl>.
2010-12-03 17:27:54 +00:00
f8e5650474 sh: Add support for tracing sys_cacheflush system call
* linux/sh/syscallent.h: Update sys_cacheflush entry.
* linux/syscall.h [SH] (sys_cacheflush): New function declaration.
* system.c [SH] (cacheflush_flags): New xlat structure.
[SH] (sys_cacheflush): New function.

Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Reviewed-by: Angelo Castello <angelo.castello@st.com>
2010-12-03 17:27:29 +00:00
b1467440f7 Cleanup test_ptrace_setoptions()
* strace.c (test_ptrace_setoptions): Cleanup.
(main): Fix test_ptrace_setoptions() error diagnostics message.
Print ptrace_setoptions value in debug mode.
2010-11-30 17:19:09 +00:00
ca8ab8d295 Handle followfork using ptrace_setoptions if available
If PTRACE_O_TRACECLONE et al options are supported by kernel,
use them to do followfork rather than the original setbpt
method that changes registers ourselves.

* defs.h [LINUX] (handle_new_child): New function prototype.
* process.c [LINUX] (handle_new_child): New function based on the
code from internal_fork(), with a trivial change: do reparent only
for sys_clone.
[LINUX] (internal_fork): Use handle_new_child().  Do nothing if
ptrace_setoptions is in effect.
* strace.c [LINUX] (handle_ptrace_event): New function.
[LINUX] (trace): If ptrace_setoptions is in effect, then
call the new function to handle PTRACE_EVENT_* status, and
set PTRACE_SETOPTIONS when we see the initial stop of tracee.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
2010-11-30 17:19:09 +00:00
b13c0de058 Test how PTRACE_SETOPTIONS support works
Currently test fork related options only.  Fork a child that uses
PTRACE_TRACEME at startup and then does a fork so strace can test
how the PTRACE_SETOPTIONS support works before it handles any real
tracee.  Since PTRACE_O_TRACECLONE/*FORK were introduced to kernel
at the same time, this test seems to be enough for these 3 options.

* defs.h [LINUX]: Define PTRACE_O_TRACECLONE et al macros here.
(ptrace_setoptions): New variable declaration.
* strace.c [LINUX] (test_ptrace_setoptions): New function, tests
whether kernel supports PTRACE_O_CLONE/*FORK, the result is stored
in the new variable ptrace_setoptions for later use.
(main): Call test_ptrace_setoptions() if followfork option is set.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
2010-11-30 17:19:09 +00:00
09fa7f8765 Enable support for less verbose build rules
* configure.ac (AM_INIT_AUTOMAKE): Add silent-rules.
2010-09-17 23:40:01 +04:00
e636c85165 Do not trace children cloned with CLONE_UNTRACED flag
If clone is called with flag CLONE_UNTRACED, to be consistent with
option PTRACE_O_TRACECLONE, we should not set CLONE_PTRACE flag on
its arguments.

* process.c [LINUX] (internal_fork): Check the syscall and arguments.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
2010-09-17 16:54:52 +00:00
cbaaf79911 Update the list of CLOCK_* constants to match Linux kernel v2.6.32+
* time.c (struct xlat clocknames[]): Add more RT clock IDs.
Reported by Tommi Rantala.
2010-09-17 09:19:49 +00:00
336a35fd43 Update linux/hppa/syscallent.h to match Linux kernel v2.6.35
* linux/hppa/syscallent.h: Add hooks for recvmmsg and accept4.
2010-09-16 16:48:45 +00:00
35d0572a12 Pass less information to qualify_one and qual_*
* syscall.c (qualify_one, qual_syscall, qual_signal, qual_fault,
qual_desc): Take just a bitflag argument instead of pointer to the whole
qual_options structure.
(struct qual_options): Update prototype of "qualify" field.
(qualify): Update use of qualify_one and qual_options->qualify.
2010-09-15 16:34:53 +00:00
0ef43b8189 Fix -e option with only one value in qualifier statement
Fix regression introduced by commit v4.5.20-19-g30145dd:
if -e option is used with only one value in qualifier statement,
e.g. 'strace -e trace=open ls', syscall information would not be
printed properly.

* syscall.c (qualify): Remove faulty optimization.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
2010-09-15 16:32:02 +00:00
584ba2d31d Fix off_t/rlim_t size checks when cross-compiling
The current off_t/rlim_t size checks (wrt size of long long) use AC_RUN
which obviously doesn't work when cross-compiling.  While we don't hit
any configure errors, the fall back code is pretty dumb (which is to say
there isn't any).  Considering the code in question though, we can use
some fun compiler tricks with sizeof and array lengths to turn it into
a pure build test and avoid the RUN issue completely.

* m4/long_long.m4 (AC_OFF_T_IS_LONG_LONG, AC_RLIM_T_IS_LONG_LONG):
Convert from AC_RUN_IFELSE to AC_COMPILE_IFELSE.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-15 15:36:00 +00:00
6d12afdac4 Fix long long little endian detection when cross-compiling
The long long endian detection code does an AC_TRY_RUN() and since that
doesn't work when cross-compiling, it sets a fallback value.  However,
rather than do any sort of default endian detection, the code simply
sets it to "no".  This probably breaks most little endian systems out
there when cross-compiling for them.  It certainly breaks Blackfin
systems.  So use the common endian detection code provided by autoconf
and key off of that when cross-compiling.

* configure.ac: Call AC_C_BIGENDIAN.
* m4/long_long.m4 (AC_LITTLE_ENDIAN_LONG_LONG): Set cross-compiling
logic based on ac_cv_c_bigendian.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-15 15:36:00 +00:00
260e571343 Blackfin: decode new syscalls
* linux/bfin/syscallent.h: Add fanotify/prlimit/cacheflush syscalls.
* linux/syscall.h: Add sys_cacheflush() decl.
* system.c: Decode Blackfin's cacheflush syscall.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-15 15:36:00 +00:00
1b30f4b7b7 * linux/ioctlent.sh: Search a few non-exported paths.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-09-15 15:36:00 +00:00
54e931fb85 Clean up pid2tcb usage
* strace.c (pid2tcb): Always match pid.  Fail for argument <= 0.
[USE_PROCFS] (first_used_tcb): New function.
[USE_PROCFS] (trace): Use that instead of pid2tcb(0).
2010-09-14 19:03:37 -07:00
1ed5d80ed8 Turn on more compiler warnings
* configure.ac: Enable gcc -Wwrite-strings.
2010-09-09 23:20:27 +00:00
918e49bac7 Import warnings.m4 from gnulib
* m4/warnings.m4: Replace with warnings.m4 from gnulib.
* configure.ac: Use gl_WARN_ADD from new warnings.m4.
* Makefile.am (AM_CFLAGS): Update for new warnings.m4.
2010-09-09 23:20:25 +00:00
916adeda63 Split acinclude.m4
* Makefile.am (ACLOCAL_AMFLAGS): Add "-I m4".
* acinclude.m4: Remove.
* m4/includedir.m4: New file, with definition of AC_INCLUDEDIR from
acinclude.m4.
* m4/long_long.m4: New file, with definitions of AC_OFF_T_IS_LONG_LONG,
AC_RLIM_T_IS_LONG_LONG and AC_LITTLE_ENDIAN_LONG_LONG from acinclude.m4.
* m4/procfs.m4: New file, with definitions of AC_MP_PROCFS,
AC_POLLABLE_PROCFS and AC_STRUCT_PR_SYSCALL from acinclude.m4.
* m4/stat.m4: New file, with definition of AC_STAT64 from acinclude.m4.
* m4/statfs.m4: New file, with definition of AC_STATFS64 from
acinclude.m4.
* m4/warnings.m4: New file, with definition of AC_WARNFLAGS from
acinclude.m4.
2010-09-09 23:20:24 +00:00
3eb9491673 * process.c (sys_waitid): Remove unused variable. 2010-09-09 23:20:10 +00:00
30145dda9d Fix const-correctness issues uncovered by gcc -Wwrite-strings
* defs.h (struct xlat): Add const qualifier to the field of
type "char *".
(set_sortby, qualify, printnum, printnum_int): Add const qualifier to
arguments of type "char *".
* count.c (set_sortby): Add const qualifier to the argument and
automatic variable of type "char *".
* desc.c (decode_select): Add const qualifier to automatic variables of
type "char *".
* ioctlsort.c (struct ioctlent): Add const qualifier to fields of
type "char *".
(main):  Add const qualifier to argv.
* process.c (printargv): Add const qualifier to the argument and
automatic variable of type "char *".
(printargc) Add const qualifier to argument of type "char *".
* signal.c (sprintsigmask, parse_sigset_t): Add const qualifier to
arguments of type "char *".
* strace.c (progname): Add const qualifier.
(detach): Add const qualifier to automatic variable of type "char *".
* stream.c (struct strbuf): Add const qualifier to the field of
type "char *".
* syscall.c (struct qual_options): Add const qualifier to fields of
type "char *".
(qual_syscall, qual_fault, qual_desc, lookup_class): Add const qualifier
to arguments of type "char *".
(qual_signal): Add const qualifier to the argument of type "char *",
avoid modification of constant argument.
(qualify): Likewise.
* util.c (printflags): Add const qualifier to automatic variable of
type "char *".
(printnum, printnum_int): Add const qualifier to arguments of
type "char *".
2010-09-07 00:59:18 +00:00
cbdd1900a1 Fix printing clone flags
When we trace clone() syscall with only exit signal as clone
flags, strace would print an unnecessary OR operator.

* process.c (sys_clone): Fix this.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
2010-09-04 11:05:45 +00:00
21b8db4eb9 Drop nclone_detached and related flags
Remove nclone_detached since CLONE_DETACHED flag was no-op for a very
long time in kernel.

* defs.h (struct tcb): Remove nclone_detached field.
Remove TCB_CLONE_DETACHED flag.
* process.c: Remove CLONE_DETACHED flag.
(clone_flags): Remove CLONE_DETACHED entry.
(internal_fork, internal_wait): Remove code dealing with CLONE_DETACHED
flag and nclone_detached.
* strace.c (startup_attach, alloc_tcb, droptcb, handle_group_exit):
Likewise.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
2010-08-28 22:36:54 +00:00
ffd2b30926 Correct get/set_robust_list syscall numbers for powerpc
* linux/powerpc/syscallent.h: Swap positions of get_ and set_robust_list.
2010-08-09 21:29:01 +00:00
5a22b31a60 Handle CLONE_PARENT flag
* process.c (internal_fork): The parent of new cloned process is the
same of the calling process when CLONE_PARENT is set.
2010-08-09 21:29:00 +00:00
304ea5f067 Fix error when judging if process has children
* process.c (internal_wait): Processes counted in tcp->nclone_threads
are tcp's threads, rather than tcp's children.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
2010-08-09 21:29:00 +00:00
d322a4bbe1 Forbid using mutually exclusive options -D and -p together
If we use -D and -p option together to trace a multi-thread program, in
addition to the main thread, other threads could not be traced even if we
present -f option. Moreover, when executing 'strace -D -p <non-exist pid>',
strace could not terminate normally.

* strace.c (main): Check it.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
2010-08-09 21:28:35 +00:00
670f51126a Update Linux MIPS syscalls to match 2.6.35-rc6+
* linux/mips/syscallent.h: Add and update 405 hooks.
2010-08-05 20:12:53 +00:00
939caba68e Add support for the MicroBlaze architecture
* configure.ac: Recognize MicroBlaze.
* linux/microblaze/syscallent.h: New file.
* Makefile.am (EXTRA_DIST): Add linux/microblaze/syscallent.h
* process.c (change_syscall, struct_user_offsets): Add MicroBlaze
support.
* signal.c (sys_sigreturn): Likewise.
* syscall.c (internal_syscall, get_scno, syscall_fixup, get_error,
syscall_enter): Likewise.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-08-05 20:04:50 +00:00
b7915d15b8 linux/sparc: add missing syscall declarations
* linux/sparc/syscall.h: Sync with linux/syscall.h

Signed-off-by: Frederik Schüler <fs@debian.org>
2010-08-05 23:48:49 +04:00
ee81c8a571 Handle biarch get/setrlimit
* resource.c (print_rlimit32) [POWERPC64 || X86_64]: Define.
(sys_getrlimit, sys_setrlimit) [POWERPC64 || X86_64]: Use it.
2010-07-17 17:46:28 +02:00
d69fa497f4 Add biarch support for powerpc64
* acinclude.m4 (AC_LITTLE_ENDIAN_LONG_LONG): Use int instead of
long.
* configure.ac [$host_cpu = powerpc*]: Also define POWERPC64 if
$host_cpu = powerpc64.
* defs.h (SUPPORTED_PERSONALITIES, PERSONALITY0_WORDSIZE)
(PERSONALITY1_WORDSIZE) [POWERPC64]: Define.
* file.c: (struct stat_powerpc32, printstat_powerpc32) [POWERPC64]:
Define.
(printstat) [LINUX && POWERPC64]: Use printstat_powerpc32 in
32-bit personality.
(sys_newfstatat) [POWERPC64]: Handle personalities.
* signal.c (sys_sigreturn) [POWERPC64]: Likewise.
* util.c (printllval) [POWERPC64]: Likewise.
(printcall) [POWERPC64]: Use wider format for IP prefix.
* syscall.c (get_scno) [POWERPC64]: Check for 64/32 bit mode.
* linux/powerpc/errnoent1.h: New file.
* linux/powerpc/ioctlent1.h: New file.
* linux/powerpc/signalent1.h: New file.
* linux/powerpc/syscallent1.h: New file.
2010-07-13 19:13:03 +02:00
372cc84c97 Balance braces
* strace.c (proc_open): Avoid unbalanced braces.
(trace): Likewise.
2010-07-09 12:01:17 +02:00
102e69a3ea Remove extern declaration at file scope
* defs.h (force_result): Declare.
* process.c (internal_wait): Don't declare force_result.
2010-07-06 19:40:25 +02:00
b87d30c785 Document -C/-D
* strace.c (usage): Document -C.
* strace.1: Document -D.
2010-06-24 17:14:01 +02:00
f47fa96b2b Fix sourceforge download URL. 2010-06-13 03:12:18 -07:00
246888d239 M68K: Fix fetching syscall arguments
* syscall.c (syscall_enter) [M68K]: Properly handle more than five
syscall arguments.
2010-06-05 21:50:30 +02:00
5874322739 Decode TLS syscalls on m68k
* linux/m68k/syscallent.h: Add entries for get_thread_area,
set_thread_area, atomic_comxchg_32, atomic_barrier.
* linux/dummy.h (sys_get_thread_area, sys_set_thread_area) [M68K]:
Don't redefine.
* mem.c (sys_get_thread_area, sys_set_thread_area) [LINUX && M68K]: New.
2010-05-28 22:28:51 +02:00
ffca9e30d6 Fix warning when compiling for m68k
* syscall.c (d0): Define as long.
2010-05-28 20:53:14 +02:00
acbe51899a 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 16:09:23 +00:00
0c56f62207 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.

Signed-off-by: Frederik Schüler <fs@debian.org>
2010-04-13 16:07:31 +00:00
394f60c07e 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-13 15:15:47 +00:00
ae4db5e1bb Update linux/ioctlent.h
* linux/ioctlent.sh: Search in asm-generic directory as well.
* linux/ioctlent.h: Regenerated.
2010-04-07 11:34:29 +00:00
623003918a 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.
2010-04-07 10:19:27 +00:00
e659103147 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 10:19:27 +00:00
0873f29af4 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 10:19:27 +00:00
a7835e631a * strace.1: Fix quoting of hyphens and formatting of strace options. 2010-04-07 10:19:26 +00:00
7d7c963d79 Split trace_syscall() for better readability
* syscall.c (trace_syscall): Split into trace_syscall_exiting() and
trace_syscall_entering().
2010-04-07 10:19:26 +00:00
e3a7ef5a2a 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.
2010-04-07 10:19:26 +00:00
c94a774a3b 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
2010-04-07 10:17:50 +00:00
9676499f89 * desc.c (sys_epoll_pwait): Fix output formatting bug. 2010-04-07 00:05:04 +00:00
6e63375495 * desc.c (decode_select): Fix potential stack buffer overflow. 2010-04-07 00:05:01 +00:00
4310a375e9 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-31 22:22:01 +00:00
bab8940674 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-23 01:14:03 +00:00
360986bacd Avoid spurious error when checking for linux/netlink.h
* configure.ac: Include <asm/types.h> when checking for
linux/netlink.h.
2010-03-09 11:38:46 +01:00
edb393420c Fix reporting signal mask by sigreturn on powerpc
* signal.c (sys_sigreturn) [POWERPC]: Skip dummy stack frame when
locating signal context.
2010-02-23 22:26:16 +01:00
200370419b Fix MIPS N32/N64 compile error
* syscall.c [LINUX_MIPSN32 || LINUX_MIPSN64] (syscall_enter): Pass
tcp->pid to ptrace().
2010-02-09 21:37:50 +00:00
c8c6698ef7 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.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
2010-02-05 22:09:30 +00:00
e5e6085806 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.
2010-02-04 22:40:57 +00:00
257e15737d 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().
2010-02-04 22:40:57 +00:00
27bb9ee15e * Makefile.am (INCLUDES): Remove redundant search directories. 2010-02-04 22:31:31 +00:00
881f573876 Update debian/* files
* debian/control: add sparc64 to the architectures list.
This closes Debian bug #560062
* Backport commit f0df31e71a 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-02-04 12:20:25 -08:00
3de3d6bf5a Fix spurious failure of AC_STAT64 test
* acinclude.m4 (AC_STAT64): Include <sys/types.h> first.
2010-01-25 11:34:02 +01:00
840d85b3e5 Don't kill the process when detaching
* strace.c (detach): Call clearbpt when TCB_BPTSET is set.
2010-01-12 11:16:32 +01:00
fdc45590eb 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-25 00:20:12 +00:00
c5fd1d9c82 * mem.c (sys_mbind): Display first argument in hex 2009-12-24 23:19:35 +00:00
ff3474aa5a * mem.c (mremap_flags): Add MREMAP_FIXED 2009-12-24 23:19:19 +00:00
5078770858 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.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-11-16 11:22:57 +00:00
e5355de95c Remove support for pre-C89
* defs.h: Remove references to __STDC__ and P macros.
* strace.c: Likewise.
2009-11-16 11:16:36 +00:00
ca75bd6dff 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-13 14:22:42 +00:00
46ed50d569 Ignore errors if a thread is killed
* util.c (clearbpt): Ignore ESRCH error.
2009-11-11 13:54:04 +01:00
9906e6da8b 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.

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-11-06 21:01:28 +00:00
3128919301 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.
2009-11-06 18:16:12 +00:00
62e0596dbd 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.
2009-11-06 17:27:46 +00:00
f0df31e71a 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-06 16:57:15 +00:00
fe9495369e Decode fallocate on PowerPC
* linux/powerpc/syscallent.h: Decode fallocate.
2009-11-04 17:15:46 +01:00
b5600fc3df 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-04 17:10:25 +01:00
d45f0a66c1 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-11-03 16:14:29 +01:00
ccdff481c0 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-27 16:30:41 +01:00
220 changed files with 25317 additions and 42286 deletions

9
.gitignore vendored
View File

@ -4,7 +4,8 @@
.libs
.*.swp
ChangeLog
/ChangeLog
/CREDITS
Makefile
Makefile.in
@ -24,5 +25,11 @@ Makefile.in
/stamp-h1
/*.gdb
/ioctls.h
/ioctldefs.h
/ioctlsort
/strace
/linux/ioctlent.h
/strace-*.tar.xz

6
.mailmap Normal file
View File

@ -0,0 +1,6 @@
# Map git author names and email addresses to canonical/preferred form.
<ak@linux.intel.com> <ak@suse.de>
<holger@freyther.de> <zecke@selfish.org>
<schwab@linux-m68k.org> <schwab@redhat.com>
<schwab@linux-m68k.org> <schwab@suse.de>
<vda.linux@googlemail.com> <dvlasenk@redhat.com>

View File

@ -27,5 +27,3 @@ 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$

49
CREDITS
View File

@ -1,49 +0,0 @@
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>

90
CREDITS.in Normal file
View File

@ -0,0 +1,90 @@
The primary authors of strace were:
Paul Kranenburg <pk@cs.few.eur.nl>
Branko Lankester <branko@hacktic.nl>
Rick Sladkey <jrs@world.std.com>
These people have contributed to strace. Some have reported problems, others
have contributed improvements to the documentation, actual code, provided
information, provided resources, or helped to port strace to new systems.
Those contributions are described in the version control logs and ChangeLog-CVS
file. If your name has been left out, if you'd rather not be listed, or if
you'd prefer a different address be used, please send a note to the
strace-devel@lists.sourceforge.net mailing list.
##<
## There is no need to list here any name that appears as an Author in
## "git log" output. Those are automatically added when this template
## is used to generate the CREDITS file.
##>
Aaron Ucko ucko@vax1.rockhurst.edu
Adrien Kunysz adrien@kunysz.be
Anton Blanchard anton@samba.org
Arkadiusz Miskiewicz misiek@pld.org.pl
Bai Weidong baiwd@cn.fujitsu.com
Bo Kullmar bk@kullmar.se
Cai Fei caifei@cn.fujitsu.com
D.J. Barrow djbarrow@de.ibm.com
David Mosberger-Tang davidm@hpl.hp.com
David S. Miller davem@caip.rutgers.edu
David Wilder wilder@us.ibm.com
David Woodhouse dwmw2@redhat.com
Douglas Mencken dougmencken@gmail.com
Fernando Luis Vazquez Cao fernando@oss.ntt.co.jp
Florian Lohoff flo@rfc822.org
Gabor Gombas gombasg@sztaki.hu
Ganesan Rajagopal rganesan@myrealbox.com
Gaël Roualland gael.roualland@iname.com
Greg Banks gbanks@pocketpenguins.com
Henrik Storner storner@osiris.ping.dk
Jakub Jelinek jj@ultra.linux.cz
Jeff Mahoney jeffm@suse.com
Joe Ilacqua spike@world.std.com
Johannes Stezenbach js@sig21.net
Ju"rgen Fluk louis@marco.de
Juergen Weigert jnweiger@immd4.informatik.uni-erlangen.de
Keith Thompson kst@alsys.com
Kyle McMartin kyle@mcmartin.ca
Lai JiangShan laijs@cn.fujitsu.com
Leonard N. Zubkoff lnz@dandelion.com
Linus Torvalds Linus.Torvalds@cs.helsinki.fi
Lupe Christoph lupe@alanya.isar.muc.de
Marty Leisner leisner@sdsp.mc.xerox.com
Matt Day mday@artisoft.com
Matthias Pfaller leo@dachau.marco.de
Maxim Shchetynin maxim@de.ibm.com
Michael E Chastain mec@duracef.shout.net
Michael Holzheu holzheu@de.ibm.com
Michail Litvak mci@owl.openwall.com
Mike Stroyan mike.stroyan@hp.com
Muttley Meen muttley.meen@gmail.com
Nate Eldredge nate@cartsys.com
Paul Mundt lethal@linux-sh.org
Peter Jones pjones@redhat.com
Pádraig Brady P@draigBrady.com
Rajeev V. Pillai rajeevvp@gmail.com
Randolph Chung tausq@debian.org
Reuben Sumner rasumner@undergrad.math.uwaterloo.ca
Richard Braakman dark@xs4all.nl
Richard Henderson richard@twiddle.tamu.edu
Richard Hirst rhirst@linuxcare.com
Roland Borde bo@uebemc.siemens.de
Sami Farin safari@u.safari.iki.fi
Scott Tsai scottt958@yahoo.com.tw
Simon Murray simon@transitive.com
Solar Designer solar@openwall.com
Srinivasa Ds srinivasa@in.ibm.com
Steve Bennett steveb@workware.net.au
Thanh Ma tma@encore.com
Thiemo Seufer ths@networkno.de
Thomas Bogendoerfer tsbogend@bigbug.franken.de
Tim Yamin plasmaroo@gentoo.org
Timo Lindfors timo.lindfors@iki.fi
Tom Dyas tdyas@eden.rutgers.edu
Tommi Rantala ext-tommi.1.rantala@nokia.com
Topi Miettinen Topi.Miettinen@nic.fi
Xiaoning Ding dingxn@gmail.com
Yang Zhiguo yzgcsu@cn.fujitsu.com
Zach Brown zach.brown@oracle.com
Zhang Le zhilg@users.sourceforge.net
Марк Коренберг socketpair@gmail.com

284
INSTALL
View File

@ -1,48 +1,80 @@
Installation Instructions
*************************
Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
Inc.
Copying and distribution of this file, with or without modification, are
permitted in any medium without royalty provided the copyright notice
and this notice are preserved. This file is offered as-is, without
warranty of any kind.
Basic Installation
==================
These are generic installation instructions.
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented
below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions.
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').
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
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.
be considered for the next release. If you are using the cache, and 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 file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' 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.
`./configure' to configure the package for your system.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
Running `configure' might take a while. 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.
the package, generally using the just-built uninstalled binaries.
4. Type `make install' to install the programs and any data files and
documentation.
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
user, and only the `make install' phase executed with root
privileges.
5. You can remove the program binaries and object files from the
5. Optionally, type `make installcheck' to repeat any self-tests, but
this time using the binaries in their final installed location.
This target does not install anything. Running this target as a
regular user, particularly if the prior `make install' required
root privileges, verifies that the installation completed
correctly.
6. 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
@ -51,62 +83,89 @@ The simplest way to compile this package is:
all sorts of other programs in order to regenerate files that came
with the distribution.
7. Often, you can also type `make uninstall' to remove the installed
files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the
GNU Coding Standards.
8. Some packages, particularly those that use Automake, provide `make
distcheck', which can by used by developers to test that all other
targets like `make install' and `make uninstall' work correctly.
This target is generally not run by end users.
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
Some systems require unusual options for compilation or linking that the
`configure' script does not know about. Run `./configure --help' for
details on some of the pertinent environment variables.
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
Compiling For Multiple Architectures
====================================
./configure CC=c99 CFLAGS=-g LIBS=-lposix
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.
*Note Defining Variables::, for more details.
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'.
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX', where PREFIX must be an
absolute file name.
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.
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files 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
options like `--bindir=DIR' 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.
you can set and what kinds of files go in them. In general, the
default for these options is expressed in terms of `${prefix}', so that
specifying just `--prefix' will affect all of the other directory
specifications that were not explicitly provided.
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'.
The most portable way to affect installation locations is to pass the
correct locations to `configure'; however, many packages provide one or
both of the following shortcuts of passing variable assignments to the
`make install' command line to change installation locations without
having to reconfigure or recompile.
The first method involves providing an override variable for each
affected directory. For example, `make install
prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of
`${prefix}'. Any directories that were specified during `configure',
but not in terms of `${prefix}', must each be overridden at install
time for the entire installation to be relocated. The approach of
makefile variable overrides for each directory variable is required by
the GNU Coding Standards, and ideally causes no recompilation.
However, some platforms have known limitations with the semantics of
shared libraries that end up requiring recompilation when using this
method, particularly noticeable in packages that use GNU Libtool.
The second method involves providing the `DESTDIR' variable. For
example, `make install DESTDIR=/alternate/directory' will prepend
`/alternate/directory' before all installation names. The approach of
`DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even
when some directory options were not specified in terms of `${prefix}'
at `configure' time.
Optional Features
=================
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'.
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
@ -119,62 +178,125 @@ 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.
Some packages offer the ability to configure how verbose the
execution of `make' will be. For these packages, running `./configure
--enable-silent-rules' sets the default to minimal output, which can be
overridden with `make V=1'; while running `./configure
--disable-silent-rules' sets the default to verbose, which can be
overridden with `make V=0'.
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:
There may be some features `configure' cannot figure out automatically,
but needs to determine by the type of machine the package will run on.
Usually, assuming the package is built to be run on the _same_
architectures, `configure' can figure that out, but if it prints a
message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS
KERNEL-OS
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.
need to know the machine 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.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
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'.
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
Defining Variables
==================
`configure' recognizes the following options to control how it
operates.
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
`--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'.
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf limitation. Until the limitation is lifted, you can use
this workaround:
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
`configure' recognizes the following options to control how it operates.
`--help'
Print a summary of the options to `configure', and exit.
`-h'
Print a summary of all of the options to `configure', and exit.
`--help=short'
`--help=recursive'
Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used
only in the top level, while the `recursive' variant lists options
also present in any nested packages.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made.
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--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.
`--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
`configure' also accepts some other, not widely useful, options.
`--no-create'
`-n'
Run the configure checks, but stop before creating any output
files.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.

View File

@ -1,91 +1,101 @@
# Automake input for strace.
SUBDIRS = tests
bin_PROGRAMS = strace
man_MANS = strace.1
bin_SCRIPTS = strace-graph
bin_SCRIPTS = strace-graph strace-log-merge
# OS is one of `linux', `sunos4', `svr4', or `freebsd'.
OS = @opsys@
OS = linux
# ARCH is `i386', `m68k', `sparc', etc.
ARCH = @arch@
AM_CFLAGS = $(WARNFLAGS)
INCLUDES = -I$(OS)/$(ARCH) -I$(srcdir)/$(OS)/$(ARCH) -I$(OS) -I$(srcdir)/$(OS)
ACLOCAL_AMFLAGS = -I m4
AM_CFLAGS = $(WARN_CFLAGS)
AM_CPPFLAGS = -I$(srcdir)/$(OS)/$(ARCH) -I$(srcdir)/$(OS) -I$(builddir)/$(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
scsi.c stream.c block.c pathtrace.c mtd.c vsprintf.c \
loop.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/changelog debian/compat debian/control debian/copyright \
debian/rules debian/source/format debian/watch \
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 \
strace-graph strace-log-merge \
ChangeLog ChangeLog-CVS COPYRIGHT CREDITS \
README-linux README-linux-ptrace \
linux/ioctlsort.c linux/ioctlent.sh \
linux/ioctlent.h linux/errnoent.h linux/signalent.h \
linux/syscall.h linux/syscallent.h linux/dummy.h \
linux/alpha/errnoent.h linux/alpha/ioctlent.h \
linux/ioctlent.h.in linux/errnoent.h linux/signalent.h \
linux/syscall.h linux/dummy.h linux/mtd-abi.h \
linux/i386/ioctlent.h.in linux/i386/syscallent.h \
linux/alpha/errnoent.h linux/alpha/ioctlent.h.in \
linux/alpha/signalent.h linux/alpha/syscallent.h \
linux/arm/syscallent.h linux/arm/syscallent1.h \
linux/arm/ioctlent.h.in 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/avr32/ioctlent.h.in linux/avr32/syscallent.h \
linux/bfin/ioctlent.h.in linux/bfin/syscallent.h \
linux/hppa/errnoent.h linux/hppa/ioctlent.h.in \
linux/hppa/signalent.h linux/hppa/syscallent.h \
linux/ia64/ioctlent.h.in \
linux/ia64/signalent.h \
linux/ia64/syscallent.h \
linux/ia64/ioctlent.h \
linux/m68k/syscallent.h \
linux/m68k/ioctlent.h.in linux/m68k/syscallent.h \
linux/microblaze/ioctlent.h.in linux/microblaze/syscallent.h \
linux/mips/ioctlent.sh linux/mips/errnoent.h \
linux/mips/ioctlent.h linux/mips/signalent.h \
linux/mips/ioctlent.h.in linux/mips/signalent.h \
linux/mips/syscallent.h \
linux/powerpc/syscallent.h \
linux/powerpc/ioctlent.h \
linux/s390/ioctlent.h \
linux/powerpc/ioctlent.h.in linux/powerpc/ioctlent1.h \
linux/powerpc/syscallent.h linux/powerpc/syscallent1.h \
linux/powerpc/errnoent1.h linux/powerpc/signalent1.h \
linux/s390/ioctlent.h.in \
linux/s390/syscallent.h \
linux/s390x/ioctlent.h \
linux/s390x/ioctlent.h.in \
linux/s390x/syscallent.h \
linux/sh/syscallent.h \
linux/sh/ioctlent.h \
linux/sh64/syscallent.h \
linux/sh/ioctlent.h.in \
linux/sh64/ioctlent.h.in 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/ioctlent.h.in linux/sparc/ioctlent1.h \
linux/sparc/signalent.h linux/sparc/signalent1.h \
linux/sparc/syscall.h linux/sparc/syscall1.h \
linux/sparc/syscall1.h \
linux/sparc/syscallent.h linux/sparc/syscallent1.h \
linux/sparc/gen.pl linux/sparc/syscall.h.2 \
linux/sparc/gen.pl \
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/ioctlent.h.in 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/syscall1.h \
linux/sparc64/syscallent.h linux/sparc64/syscallent1.h \
linux/sparc64/syscallent2.h \
linux/x86_64/syscallent.h linux/x86_64/gentab.pl \
linux/tile/ioctlent.h.in linux/tile/syscallent.h \
linux/x32/errnoent.h linux/x32/ioctlent.h.in \
linux/x32/signalent.h linux/x32/syscallent.h \
linux/x32/errnoent1.h linux/x32/ioctlent1.h \
linux/x32/signalent1.h linux/x32/syscallent1.h \
linux/x86_64/ioctlent.h.in linux/x86_64/syscallent.h \
linux/x86_64/gentab.pl \
linux/x86_64/errnoent1.h linux/x86_64/ioctlent1.h \
linux/x86_64/signalent1.h linux/x86_64/syscallent1.h \
freebsd/ioctlent.sh \
freebsd/syscalls.cat freebsd/syscalls.pl freebsd/syscalls.print \
freebsd/i386/errnoent.h freebsd/i386/ioctlent.h \
freebsd/i386/signalent.h \
freebsd/i386/syscall.h freebsd/i386/syscallent.h \
sunos4/dummy.h sunos4/errnoent.h \
sunos4/ioctlent.h sunos4/ioctlent.sh sunos4/signalent.h \
sunos4/syscall.h sunos4/syscallent.h \
svr4/dummy.h svr4/errnoent.h svr4/ioctlent.h svr4/ioctlent.sh \
svr4/signalent.h svr4/syscall.h svr4/syscallent.h \
linux/x86_64/errnoent2.h linux/x86_64/ioctlent2.h \
linux/x86_64/signalent2.h linux/x86_64/syscallent2.h \
xlate.el
.PHONY: srpm
srpm: dist-bzip2
rpmbuild --define '%_srcrpmdir .' -ts $(distdir).tar.bz2
srpm: dist-xz
rpmbuild --define '%_srcrpmdir .' -ts $(distdir).tar.xz
BUILT_SOURCES =
if MAINTAINER_MODE
@ -94,28 +104,35 @@ $(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)'; \
./gitlog-to-changelog --append-dot \
--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
$(srcdir)/CREDITS: $(top_srcdir)/CREDITS.in $(top_srcdir)/.mailmap \
$(srcdir)/Makefile.in $(top_srcdir)/.git/refs/heads/*
$(AM_V_GEN) \
{ \
cd $(top_srcdir); \
sed '/^##/,$$d' CREDITS.in; \
{ sed -n '1,/^##>/d; s/ \+/\t/; s/^./&/p' CREDITS.in; \
git log --pretty=format:'%aN %aE'; \
} | LC_ALL=C sort -u \
| awk -F'\t' '{printf("\t%s <%s>\n",$$1,$$2)}'; \
} > $@-t && mv $@-t $@
if LINUX
export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner --mode=go-w,go+rX
IOCTLDIR = /usr/include
IOCTLASM = asm
if I386
ioctlent_h = linux/ioctlent.h
else
ioctlent_h = linux/$(ARCH)/ioctlent.h
endif
ioctlent_h_in = linux/ioctlent.h.in
BUILT_SOURCES = $(ioctlent_h)
BUILT_SOURCES += $(ioctlent_h_in)
$(srcdir)/$(ioctlent_h): ioctlsort
$(srcdir)/$(ioctlent_h_in): ioctlsort
$(<D)/$(<F) > $@
ioctlsort: $(srcdir)/linux/ioctlsort.c ioctls.h ioctldefs.h
$(filter-out -I%,$(LINK.c)) -I. -I$(IOCTLDIR) $(filter -I%,$(LINK.c)) \
@ -125,4 +142,13 @@ ioctls.h: $(srcdir)/linux/ioctlent.sh
ioctldefs.h: ioctls.h ;
endif
endif
ioctlent_h = $(builddir)/$(OS)/ioctlent.h
BUILT_SOURCES += $(ioctlent_h)
CLEANFILES = $(ioctlent_h)
ioctlent_h_deps = $(srcdir)/$(OS)/ioctlent.h.in $(srcdir)/$(OS)/$(ARCH)/ioctlent.h.in
$(ioctlent_h): $(top_builddir)/config.status $(ioctlent_h_deps)
$(MKDIR_P) $(builddir)/$(OS)
cat $(ioctlent_h_deps) | \
$(COMPILE) -E -P - | \
LC_ALL=C sort -u -k3,3 -k2,2 > $@

163
NEWS
View File

@ -1,3 +1,165 @@
Noteworthy changes in release 4.7
=================================
* Changes in behavior
* strace no longer suspends waitpid until there is a child
for waitpid'ing process to collect status from.
* strace no longer detaches from a tracee which is supposed
to be going to die.
* strace now issues a new message: "+++ exited with EXITCODE +++"
which shows exact moment strace got exit notification,
analogous to existing "+++ killed by SIG +++" message.
* Improvements
* Added x32 personality support (x86_64 architecture).
* Added -y and -P options to print file descriptor paths and
filter by those paths.
* Added -I option to control strace interactivity.
* Allowed -p option to take comma or whitespace-separated list of PIDs.
* Added strace_log_merge script helper to merge timestamped "strace -ff"
log files.
* Implemented decoding of clock_adjtime, get_robust_list, migrate_pages,
preadv, prlimit64, process_vm_readv, process_vm_writev, pwritev,
recvmmsg, recvmsg, rt_tgsigqueueinfo, sendmmsg, setns, set_robust_list,
sched_rr_get_interval, splice, syslog, tee and vmsplice syscalls.
* Enhanced decoding of capget, capset, getrlimit, flistxattr, io_submit,
listxattr, setrlimit and swapon syscalls.
* Implemented decoding of loop and mtd ioctls.
* Added syscall entries for new linux syscalls.
* Added syscall entries for direct socket system calls on powerpc.
* Updated the list of errno constants.
* Updated lists of MSG_*, STA_*, and TCP_* constants.
* Regenerated the list of ioctl names from Linux 3.3.
* Enhanced switching between processes with different personalities.
* Enhanced signals reporting by using short signal names.
* Made ERESTART* messages more descriptive.
* Made parsing of numbers from strings more robust.
* Added support for compat_statfs64 and statfs64.f_flags.
* Changed read of data blocks to use single process_vm_readv syscall
(when available) instead of several PTRACE_PEEKDATA operations.
* Changed read of registers on x86 and x86-64 to use single PTRACE_GETREGS
operation instead of several PTRACE_PEEKUSER operations.
* Applied various optimizations to make strace work faster.
* Bug fixes
* Implemented proper handling of real SIGTRAPs on kernels supporting
PTRACE_O_TRACESYSGOOD.
(Addresses Fedora bug #162774).
* Fixed sockaddr_un.sun_path name in decoded output.
(Addresses Debian bug #554946).
* Fixed to avoid potential core file clobbering on exit.
(Addresses Debian bug #656398).
* Fixed a typo in documentation.
(Addresses Debian bug #653309).
* Fixed decoding of timer id returned by timer_create.
* Fixed epoll_create1, epoll_wait and epoll_pwait decoding.
* Fixed *at syscalls flags decoding.
* Fixed ARM EABI 64-bit syscall's arguments decoding.
* Fixed semtimedop decoding on s390.
* Fixed osf_sigprocmask decoding on alpha.
* Fixed ipc and socket subcall decoding on several architectures.
* Corrected syscall entries for epoll_pwait, epoll_create, epoll_ctl,
epoll_wait, mincore, mlockall, prctl, reboot, sendfile, sendfile64,
sendmsg, sgetmask, ssetmask, swapon, tgkill and tkill syscalls.
* Corrected io_* syscall entries on ARM.
* Fixed PID prefix printing in "strace -oLOG -ff -p1 -p2 -p3" case.
* Fixed logging of unfinished lines in "strace -oLOG -ff" case.
* Fixed build when libaio-devel is not available.
* Fixed configure checks for PTRACE_* constants.
* Fixed compilation warnings remained on several architectures.
* Portability
* Removed all non-Linux code. After years of neglect, that dead code
just hampered further strace development.
* Linux kernel >= 2.6.18 is recommended. Older versions might still
work but they haven't been thoroughly tested with this release.
Noteworthy changes in release 4.6
=================================
* Changes in behavior
* Print diagnostic information about changes in personality mode to
standard error instead of standard output.
* Improvements
* Implemented a new method of following clone, fork, and vfork
syscalls using the Linux kernel's explicit facilities for tracing
creation of threads and child processes.
* Implemented CLONE_PARENT and CLONE_UNTRACED flags handling.
* Implemented decoding of TLS syscalls on m68k.
* Implemented biarch support on powerpc64.
* Implemented biarch support for getrlimit() and setrlimit().
* Implemented decoding of struct ucred in getsockopt SO_PEERCRED.
* Implemented SOL_SCTP socket options decoding.
* Added HDIO_* ioctl names.
(Addresses Debian bug #450953).
* Added LOOP_* ioctl names.
* Updated lists of CLOCK_*, CLONE_*, MS_*, and SOL_* constants
to match Linux 2.6.37.
* Updated the list of IPPROTO_* constants to match netinet/in.h.
* Implemented decoding of HDIO_* and BLK* ioctls.
* Added MicroBlaze architecture support.
* Added new syscall entries to match Linux 2.6.37.
* Regenerated list of ioctl names from Linux 2.6.37.
* Enhanced signal notification decoding.
* Documented -C and -D options.
* Bug fixes
* Fixed fetching syscall arguments on m68k.
* Fixed an error when judging whether a process has children.
* Fixed get/set_robust_list syscall numbers for powerpc.
* Fixed a corner case in printing clone flags.
* Fixed cross-compiling issues.
* Fixed build issues on powerpc64, SH and SPARC.
* Fixed syscall flags of fstatat*, mmap, mmap2, fadvise64*, swapoff,
fgetxattr, flistxattr, fremovexattr, epoll_create, fallocate,
fanotify_init, and fanotify_mark syscalls.
* Fixed decoding of get[ug]id, gete[ug]id and setfs[ug]id return values.
* Fixed biarch support in IO dumping.
* Fixed raw exit_group decoding.
* Fixed decoding of file descriptors on 64-bit architectures.
* Fixed a corner case in waitpid handling.
(Addresses Red Hat bug #663547).
* Fixed stat64 decoding on mips
(Addresses Debian bug #599028).
* Fixed misleading italics in the manual page.
(Addresses Debian bug #589323).
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
====================================
@ -38,6 +200,7 @@ Noteworthy changes in release 4.5.19
* 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)

70
PORTING
View File

@ -1,70 +0,0 @@
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>

26
README
View File

@ -1,31 +1,17 @@
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.
This is strace, a system call tracer for Linux.
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:
strace is released under a Berkeley-style license at the request
of Paul Kranenburg; see the file COPYRIGHT for details.
./configure --prefix=/usr i486-linux
See the file CREDITS for a list of authors and other contributors.
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 INSTALL for compilation and installation instructions.
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>
mailinglist at strace-devel@lists.sourceforge.net.

View File

@ -1,26 +0,0 @@
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<EFBFBD>l Roualland <gael.roualland@iname.com>

542
README-linux-ptrace Normal file
View File

@ -0,0 +1,542 @@
This document describes Linux ptrace implementation in Linux kernels
version 3.0.0. (Update this notice if you update the document
to reflect newer kernels).
Ptrace userspace API.
Ptrace API (ab)uses standard Unix parent/child signaling over waitpid.
An unfortunate effect of it is that resulting API is complex and has
subtle quirks. This document aims to describe these quirks.
Debugged processes (tracees) first need to be attached to the debugging
process (tracer). Attachment and subsequent commands are per-thread: in
multi-threaded process, every thread can be individually attached to a
(potentially different) tracer, or left not attached and thus not
debugged. Therefore, "tracee" always means "(one) thread", never "a
(possibly multi-threaded) process". Ptrace commands are always sent to
a specific tracee using ptrace(PTRACE_foo, pid, ...), where pid is a
TID of the corresponding Linux thread.
After attachment, each tracee can be in two states: running or stopped.
There are many kinds of states when tracee is stopped, and in ptrace
discussions they are often conflated. Therefore, it is important to use
precise terms.
In this document, any stopped state in which tracee is ready to accept
ptrace commands from the tracer is called ptrace-stop. Ptrace-stops can
be further subdivided into signal-delivery-stop, group-stop,
syscall-stop and so on. They are described in detail later.
1.x Death under ptrace.
When a (possibly multi-threaded) process receives a killing signal (a
signal set to SIG_DFL and whose default action is to kill the process),
all threads exit. Tracees report their death to the tracer(s). This is
not a ptrace-stop (because tracer can't query tracee status such as
register contents, cannot restart tracee etc) but the notification
about this event is delivered through waitpid API similarly to
ptrace-stop.
Note that killing signal will first cause signal-delivery-stop (on one
tracee only), and only after it is injected by tracer (or after it was
dispatched to a thread which isn't traced), death from signal will
happen on ALL tracees within multi-threaded process.
SIGKILL operates similarly, with exceptions. No signal-delivery-stop is
generated for SIGKILL and therefore tracer can't suppress it. SIGKILL
kills even within syscalls (syscall-exit-stop is not generated prior to
death by SIGKILL). The net effect is that SIGKILL always kills the
process (all its threads), even if some threads of the process are
ptraced.
Tracer can kill a tracee with ptrace(PTRACE_KILL, pid, 0, 0). This
operation is deprecated, use kill/tgkill(SIGKILL) instead.
^^^ Oleg prefers to deprecate it instead of describing (and needing to
support) PTRACE_KILL's quirks.
When tracee executes exit syscall, it reports its death to its tracer.
Other threads are not affected.
When any thread executes exit_group syscall, every tracee in its thread
group reports its death to its tracer.
If PTRACE_O_TRACEEXIT option is on, PTRACE_EVENT_EXIT will happen
before actual death. This applies to exits on exit syscall, group_exit
syscall, signal deaths (except SIGKILL), and when threads are torn down
on execve in multi-threaded process.
Tracer cannot assume that ptrace-stopped tracee exists. There are many
scenarios when tracee may die while stopped (such as SIGKILL).
Therefore, tracer must always be prepared to handle ESRCH error on any
ptrace operation. Unfortunately, the same error is returned if tracee
exists but is not ptrace-stopped (for commands which require stopped
tracee), or if it is not traced by process which issued ptrace call.
Tracer needs to keep track of stopped/running state, and interpret
ESRCH as "tracee died unexpectedly" only if it knows that tracee has
been observed to enter ptrace-stop. Note that there is no guarantee
that waitpid(WNOHANG) will reliably report tracee's death status if
ptrace operation returned ESRCH. waitpid(WNOHANG) may return 0 instead.
IOW: tracee may be "not yet fully dead" but already refusing ptrace ops.
Tracer can not assume that tracee ALWAYS ends its life by reporting
WIFEXITED(status) or WIFSIGNALED(status).
??? or can it? Do we include such a promise into ptrace API?
1.x Stopped states.
When running tracee enters ptrace-stop, it notifies its tracer using
waitpid API. Tracer should use waitpid family of syscalls to wait for
tracee to stop. Most of this document assumes that tracer waits with:
pid = waitpid(pid_or_minus_1, &status, __WALL);
Ptrace-stopped tracees are reported as returns with pid > 0 and
WIFSTOPPED(status) == true.
??? Do we require __WALL usage, or will just using 0 be ok? Are the
rules different if user wants to use waitid? Will waitid require
WEXITED?
__WALL value does not include WSTOPPED and WEXITED bits, but implies
their functionality.
Setting of WCONTINUED bit in waitpid flags is not recommended: the
continued state is per-process and consuming it can confuse real parent
of the tracee.
Use of WNOHANG bit in waitpid flags may cause waitpid return 0 ("no
wait results available yet") even if tracer knows there should be a
notification. Example: kill(tracee, SIGKILL); waitpid(tracee, &status,
__WALL | WNOHANG);
??? waitid usage? WNOWAIT?
??? describe how wait notifications queue (or not queue)
The following kinds of ptrace-stops exist: signal-delivery-stops,
group-stop, PTRACE_EVENT stops, syscall-stops [, SINGLESTEP, SYSEMU,
SYSEMU_SINGLESTEP]. They all are reported as waitpid result with
WIFSTOPPED(status) == true. They may be differentiated by checking
(status >> 8) value, and if looking at (status >> 8) value doesn't
resolve ambiguity, by querying PTRACE_GETSIGINFO. (Note:
WSTOPSIG(status) macro returns ((status >> 8) & 0xff) value).
1.x.x Signal-delivery-stop
When (possibly multi-threaded) process receives any signal except
SIGKILL, kernel selects a thread which handles the signal (if signal is
generated with t[g]kill, thread selection is done by user). If selected
thread is traced, it enters signal-delivery-stop. By this point, signal
is not yet delivered to the process, and can be suppressed by tracer.
If tracer doesn't suppress the signal, it passes signal to tracee in
the next ptrace request. This second step of signal delivery is called
"signal injection" in this document. Note that if signal is blocked,
signal-delivery-stop doesn't happen until signal is unblocked, with the
usual exception that SIGSTOP can't be blocked.
Signal-delivery-stop is observed by tracer as waitpid returning with
WIFSTOPPED(status) == true, WSTOPSIG(status) == signal. If
WSTOPSIG(status) == SIGTRAP, this may be a different kind of
ptrace-stop - see "Syscall-stops" and "execve" sections below for
details. If WSTOPSIG(status) == stopping signal, this may be a
group-stop - see below.
1.x.x Signal injection and suppression.
After signal-delivery-stop is observed by tracer, tracer should restart
tracee with
ptrace(PTRACE_rest, pid, 0, sig)
call, where PTRACE_rest is one of the restarting ptrace ops. If sig is
0, then signal is not delivered. Otherwise, signal sig is delivered.
This operation is called "signal injection" in this document, to
distinguish it from signal-delivery-stop.
Note that sig value may be different from WSTOPSIG(status) value -
tracer can cause a different signal to be injected.
Note that suppressed signal still causes syscalls to return
prematurely. Kernel should always restart the syscall in this case:
tracer would observe a new syscall-enter-stop for the same syscall,
or, in case of syscalls returning ERESTART_RESTARTBLOCK,
tracer would observe a syscall-enter-stop for restart_syscall(2)
syscall. There may still be bugs in this area which cause some syscalls
to instead return with -EINTR even though no observable signal
was injected to the tracee.
This is a cause of confusion among ptrace users. One typical scenario
is that tracer observes group-stop, mistakes it for
signal-delivery-stop, restarts tracee with ptrace(PTRACE_rest, pid, 0,
stopsig) with the intention of injecting stopsig, but stopsig gets
ignored and tracee continues to run.
SIGCONT signal has a side effect of waking up (all threads of)
group-stopped process. This side effect happens before
signal-delivery-stop. Tracer can't suppress this side-effect (it can
only suppress signal injection, which only causes SIGCONT handler to
not be executed in the tracee, if such handler is installed). In fact,
waking up from group-stop may be followed by signal-delivery-stop for
signal(s) *other than* SIGCONT, if they were pending when SIGCONT was
delivered. IOW: SIGCONT may be not the first signal observed by the
tracee after it was sent.
Stopping signals cause (all threads of) process to enter group-stop.
This side effect happens after signal injection, and therefore can be
suppressed by tracer.
PTRACE_GETSIGINFO can be used to retrieve siginfo_t structure which
corresponds to delivered signal. PTRACE_SETSIGINFO may be used to
modify it. If PTRACE_SETSIGINFO has been used to alter siginfo_t,
si_signo field and sig parameter in restarting command must match,
otherwise the result is undefined.
1.x.x Group-stop
When a (possibly multi-threaded) process receives a stopping signal,
all threads stop. If some threads are traced, they enter a group-stop.
Note that stopping signal will first cause signal-delivery-stop (on one
tracee only), and only after it is injected by tracer (or after it was
dispatched to a thread which isn't traced), group-stop will be
initiated on ALL tracees within multi-threaded process. As usual, every
tracee reports its group-stop separately to corresponding tracer.
Group-stop is observed by tracer as waitpid returning with
WIFSTOPPED(status) == true, WSTOPSIG(status) == signal. The same result
is returned by some other classes of ptrace-stops, therefore the
recommended practice is to perform
ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo)
call. The call can be avoided if signal number is not SIGSTOP, SIGTSTP,
SIGTTIN or SIGTTOU - only these four signals are stopping signals. If
tracer sees something else, it can't be group-stop. Otherwise, tracer
needs to call PTRACE_GETSIGINFO. If PTRACE_GETSIGINFO fails with
EINVAL, then it is definitely a group-stop. (Other failure codes are
possible, such as ESRCH "no such process" if SIGKILL killed the tracee).
As of kernel 2.6.38, after tracer sees tracee ptrace-stop and until it
restarts or kills it, tracee will not run, and will not send
notifications (except SIGKILL death) to tracer, even if tracer enters
into another waitpid call.
Currently, it causes a problem with transparent handling of stopping
signals: if tracer restarts tracee after group-stop, SIGSTOP is
effectively ignored: tracee doesn't remain stopped, it runs. If tracer
doesn't restart tracee before entering into next waitpid, future
SIGCONT will not be reported to the tracer. Which would make SIGCONT to
have no effect.
1.x.x PTRACE_EVENT stops
If tracer sets TRACE_O_TRACEfoo options, tracee will enter ptrace-stops
called PTRACE_EVENT stops.
PTRACE_EVENT stops are observed by tracer as waitpid returning with
WIFSTOPPED(status) == true, WSTOPSIG(status) == SIGTRAP. Additional bit
is set in a higher byte of status word: value ((status >> 8) & 0xffff)
will be (SIGTRAP | PTRACE_EVENT_foo << 8). The following events exist:
PTRACE_EVENT_VFORK - stop before return from vfork/clone+CLONE_VFORK.
When tracee is continued after this, it will wait for child to
exit/exec before continuing its execution (IOW: usual behavior on
vfork).
PTRACE_EVENT_FORK - stop before return from fork/clone+SIGCHLD
PTRACE_EVENT_CLONE - stop before return from clone
PTRACE_EVENT_VFORK_DONE - stop before return from
vfork/clone+CLONE_VFORK, but after vfork child unblocked this tracee by
exiting or exec'ing.
For all four stops described above: stop occurs in parent, not in newly
created thread. PTRACE_GETEVENTMSG can be used to retrieve new thread's
tid.
PTRACE_EVENT_EXEC - stop before return from exec.
PTRACE_EVENT_EXIT - stop before exit (including death from exit_group),
signal death, or exit caused by execve in multi-threaded process.
PTRACE_GETEVENTMSG returns exit status. Registers can be examined
(unlike when "real" exit happens). The tracee is still alive, it needs
to be PTRACE_CONTed or PTRACE_DETACHed to finish exit.
PTRACE_GETSIGINFO on PTRACE_EVENT stops returns si_signo = SIGTRAP,
si_code = (event << 8) | SIGTRAP.
1.x.x Syscall-stops
If tracee was restarted by PTRACE_SYSCALL, tracee enters
syscall-enter-stop just prior to entering any syscall. If tracer
restarts it with PTRACE_SYSCALL, tracee enters syscall-exit-stop when
syscall is finished, or if it is interrupted by a signal. (That is,
signal-delivery-stop never happens between syscall-enter-stop and
syscall-exit-stop, it happens *after* syscall-exit-stop).
Other possibilities are that tracee may stop in a PTRACE_EVENT stop,
exit (if it entered exit or exit_group syscall), be killed by SIGKILL,
or die silently (if execve syscall happened in another thread).
Syscall-enter-stop and syscall-exit-stop are observed by tracer as
waitpid returning with WIFSTOPPED(status) == true, WSTOPSIG(status) ==
SIGTRAP. If PTRACE_O_TRACESYSGOOD option was set by tracer, then
WSTOPSIG(status) == (SIGTRAP | 0x80).
Syscall-stops can be distinguished from signal-delivery-stop with
SIGTRAP by querying PTRACE_GETSIGINFO: si_code <= 0 if sent by usual
suspects like [tg]kill/sigqueue/etc; or = SI_KERNEL (0x80) if sent by
kernel, whereas syscall-stops have si_code = SIGTRAP or (SIGTRAP |
0x80). However, syscall-stops happen very often (twice per syscall),
and performing PTRACE_GETSIGINFO for every syscall-stop may be somewhat
expensive.
Some architectures allow to distinguish them by examining registers.
For example, on x86 rax = -ENOSYS in syscall-enter-stop. Since SIGTRAP
(like any other signal) always happens *after* syscall-exit-stop, and
at this point rax almost never contains -ENOSYS, SIGTRAP looks like
"syscall-stop which is not syscall-enter-stop", IOW: it looks like a
"stray syscall-exit-stop" and can be detected this way. But such
detection is fragile and is best avoided.
Using PTRACE_O_TRACESYSGOOD option is a recommended method, since it is
reliable and does not incur performance penalty.
Syscall-enter-stop and syscall-exit-stop are indistinguishable from
each other by tracer. Tracer needs to keep track of the sequence of
ptrace-stops in order to not misinterpret syscall-enter-stop as
syscall-exit-stop or vice versa. The rule is that syscall-enter-stop is
always followed by syscall-exit-stop, PTRACE_EVENT stop or tracee's
death - no other kinds of ptrace-stop can occur in between.
If after syscall-enter-stop tracer uses restarting command other than
PTRACE_SYSCALL, syscall-exit-stop is not generated.
PTRACE_GETSIGINFO on syscall-stops returns si_signo = SIGTRAP, si_code
= SIGTRAP or (SIGTRAP | 0x80).
1.x.x SINGLESTEP, SYSEMU, SYSEMU_SINGLESTEP
??? document PTRACE_SINGLESTEP, PTRACE_SYSEMU, PTRACE_SYSEMU_SINGLESTEP
1.x Informational and restarting ptrace commands.
Most ptrace commands (all except ATTACH, TRACEME, KILL) require tracee
to be in ptrace-stop, otherwise they fail with ESRCH.
When tracee is in ptrace-stop, tracer can read and write data to tracee
using informational commands. They leave tracee in ptrace-stopped state:
longv = ptrace(PTRACE_PEEKTEXT/PEEKDATA/PEEKUSER, pid, addr, 0);
ptrace(PTRACE_POKETEXT/POKEDATA/POKEUSER, pid, addr, long_val);
ptrace(PTRACE_GETREGS/GETFPREGS, pid, 0, &struct);
ptrace(PTRACE_SETREGS/SETFPREGS, pid, 0, &struct);
ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo);
ptrace(PTRACE_SETSIGINFO, pid, 0, &siginfo);
ptrace(PTRACE_GETEVENTMSG, pid, 0, &long_var);
ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);
Note that some errors are not reported. For example, setting siginfo
may have no effect in some ptrace-stops, yet the call may succeed
(return 0 and don't set errno).
ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags) affects one tracee.
Current flags are replaced. Flags are inherited by new tracees created
and "auto-attached" via active PTRACE_O_TRACE[V]FORK or
PTRACE_O_TRACECLONE options.
Another group of commands makes ptrace-stopped tracee run. They have
the form:
ptrace(PTRACE_cmd, pid, 0, sig);
where cmd is CONT, DETACH, SYSCALL, SINGLESTEP, SYSEMU, or
SYSEMU_SINGLESTEP. If tracee is in signal-delivery-stop, sig is the
signal to be injected. Otherwise, sig may be ignored.
1.x Attaching and detaching
A thread can be attached to tracer using ptrace(PTRACE_ATTACH, pid, 0,
0) call. This also sends SIGSTOP to this thread. If tracer wants this
SIGSTOP to have no effect, it needs to suppress it. Note that if other
signals are concurrently sent to this thread during attach, tracer may
see tracee enter signal-delivery-stop with other signal(s) first! The
usual practice is to reinject these signals until SIGSTOP is seen, then
suppress SIGSTOP injection. The design bug here is that attach and
concurrent SIGSTOP are racing and SIGSTOP may be lost.
??? Describe how to attach to a thread which is already group-stopped.
Since attaching sends SIGSTOP and tracer usually suppresses it, this
may cause stray EINTR return from the currently executing syscall in
the tracee, as described in "signal injection and suppression" section.
ptrace(PTRACE_TRACEME, 0, 0, 0) request turns current thread into a
tracee. It continues to run (doesn't enter ptrace-stop). A common
practice is to follow ptrace(PTRACE_TRACEME) with raise(SIGSTOP) and
allow parent (which is our tracer now) to observe our
signal-delivery-stop.
If PTRACE_O_TRACE[V]FORK or PTRACE_O_TRACECLONE options are in effect,
then children created by (vfork or clone(CLONE_VFORK)), (fork or
clone(SIGCHLD)) and (other kinds of clone) respectively are
automatically attached to the same tracer which traced their parent.
SIGSTOP is delivered to them, causing them to enter
signal-delivery-stop after they exit syscall which created them.
Detaching of tracee is performed by ptrace(PTRACE_DETACH, pid, 0, sig).
PTRACE_DETACH is a restarting operation, therefore it requires tracee
to be in ptrace-stop. If tracee is in signal-delivery-stop, signal can
be injected. Othervice, sig parameter may be silently ignored.
If tracee is running when tracer wants to detach it, the usual solution
is to send SIGSTOP (using tgkill, to make sure it goes to the correct
thread), wait for tracee to stop in signal-delivery-stop for SIGSTOP
and then detach it (suppressing SIGSTOP injection). Design bug is that
this can race with concurrent SIGSTOPs. Another complication is that
tracee may enter other ptrace-stops and needs to be restarted and
waited for again, until SIGSTOP is seen. Yet another complication is to
be sure that tracee is not already ptrace-stopped, because no signal
delivery happens while it is - not even SIGSTOP.
??? Describe how to detach from a group-stopped tracee so that it
doesn't run, but continues to wait for SIGCONT.
If tracer dies, all tracees are automatically detached and restarted,
unless they were in group-stop. Handling of restart from group-stop is
currently buggy, but "as planned" behavior is to leave tracee stopped
and waiting for SIGCONT. If tracee is restarted from
signal-delivery-stop, pending signal is injected.
1.x execve under ptrace.
During execve, kernel destroys all other threads in the process, and
resets execve'ing thread tid to tgid (process id). This looks very
confusing to tracers:
All other threads stop in PTRACE_EXIT stop, if requested by active
ptrace option. Then all other threads except thread group leader report
death as if they exited via exit syscall with exit code 0. Then
PTRACE_EVENT_EXEC stop happens, if requested by active ptrace option
(on which tracee - leader? execve-ing one?).
The execve-ing tracee changes its pid while it is in execve syscall.
(Remember, under ptrace 'pid' returned from waitpid, or fed into ptrace
calls, is tracee's tid). That is, pid is reset to process id, which
coincides with thread group leader tid.
If thread group leader has reported its death by this time, for tracer
this looks like dead thread leader "reappears from nowhere". If thread
group leader was still alive, for tracer this may look as if thread
group leader returns from a different syscall than it entered, or even
"returned from syscall even though it was not in any syscall". If
thread group leader was not traced (or was traced by a different
tracer), during execve it will appear as if it has become a tracee of
the tracer of execve'ing tracee. All these effects are the artifacts of
pid change.
PTRACE_O_TRACEEXEC option is the recommended tool for dealing with this
case. It enables PTRACE_EVENT_EXEC stop which occurs before execve
syscall return.
Pid change happens before PTRACE_EVENT_EXEC stop, not after.
When tracer receives PTRACE_EVENT_EXEC stop notification, it is
guaranteed that except this tracee and thread group leader, no other
threads from the process are alive.
On receiving this notification, tracer should clean up all its internal
data structures about all threads of this process, and retain only one
data structure, one which describes single still running tracee, with
pid = tgid = process id.
Currently, there is no way to retrieve former pid of execve-ing tracee.
If tracer doesn't keep track of its tracees' thread group relations, it
may be unable to know which tracee execve-ed and therefore no longer
exists under old pid due to pid change.
Example: two threads execve at the same time:
** we get syscall-entry-stop in thread 1: **
PID1 execve("/bin/foo", "foo" <unfinished ...>
** we issue PTRACE_SYSCALL for thread 1 **
** we get syscall-entry-stop in thread 2: **
PID2 execve("/bin/bar", "bar" <unfinished ...>
** we issue PTRACE_SYSCALL for thread 2 **
** we get PTRACE_EVENT_EXEC for PID0, we issue PTRACE_SYSCALL **
** we get syscall-exit-stop for PID0: **
PID0 <... execve resumed> ) = 0
In this situation there is no way to know which execve succeeded.
If PTRACE_O_TRACEEXEC option is NOT in effect for the execve'ing
tracee, kernel delivers an extra SIGTRAP to tracee after execve syscall
returns. This is an ordinary signal (similar to one which can be
generated by "kill -TRAP"), not a special kind of ptrace-stop.
GETSIGINFO on it has si_code = 0 (SI_USER). It can be blocked by signal
mask, and thus can happen (much) later.
Usually, tracer (for example, strace) would not want to show this extra
post-execve SIGTRAP signal to the user, and would suppress its delivery
to the tracee (if SIGTRAP is set to SIG_DFL, it is a killing signal).
However, determining *which* SIGTRAP to suppress is not easy. Setting
PTRACE_O_TRACEEXEC option and thus suppressing this extra SIGTRAP is
the recommended approach.
1.x Real parent
Ptrace API (ab)uses standard Unix parent/child signaling over waitpid.
This used to cause real parent of the process to stop receiving several
kinds of waitpid notifications when child process is traced by some
other process.
Many of these bugs have been fixed, but as of 2.6.38 several still
exist.
As of 2.6.38, the following is believed to work correctly:
- exit/death by signal is reported first to tracer, then, when tracer
consumes waitpid result, to real parent (to real parent only when the
whole multi-threaded process exits). If they are the same process, the
report is sent only once.
1.x Known bugs
Following bugs still exist:
Group-stop notifications are sent to tracer, but not to real parent.
Last confirmed on 2.6.38.6.
If thread group leader is traced and exits by calling exit syscall,
PTRACE_EVENT_EXIT stop will happen for it (if requested), but subsequent
WIFEXITED notification will not be delivered until all other threads
exit. As explained above, if one of other threads execve's, thread
group leader death will *never* be reported. If execve-ed thread is not
traced by this tracer, tracer will never know that execve happened.
??? need to test this scenario
One possible workaround is to detach thread group leader instead of
restarting it in this case. Last confirmed on 2.6.38.6.
SIGKILL signal may still cause PTRACE_EVENT_EXIT stop before actual
signal death. This may be changed in the future - SIGKILL is meant to
always immediately kill tasks even under ptrace. Last confirmed on
2.6.38.6.

View File

@ -1,85 +0,0 @@
========================================================================
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

View File

@ -1,21 +0,0 @@
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>

32
TODO
View File

@ -1,32 +0,0 @@
-- 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

View File

@ -1,281 +0,0 @@
dnl
dnl This file contains macros used in configure.ac.
dnl automake uses this file to generate aclocal.m4, which is used by autoconf.
dnl
dnl ### A macro to find the include directory, useful for cross-compiling.
AC_DEFUN([AC_INCLUDEDIR],
[AC_REQUIRE([AC_PROG_AWK])dnl
AC_SUBST(includedir)
AC_MSG_CHECKING(for primary include directory)
includedir=/usr/include
if test -n "$GCC"
then
>conftest.c
new_includedir=`
$CC -v -E conftest.c 2>&1 | $AWK '
/^End of search list/ { print last; exit }
{ last = [$]1 }
'
`
rm -f conftest.c
if test -n "$new_includedir" && test -d "$new_includedir"
then
includedir=$new_includedir
fi
fi
AC_MSG_RESULT($includedir)
])
dnl ### A macro to set gcc warning flags.
define(AC_WARNFLAGS,
[AC_SUBST(WARNFLAGS)
if test -z "$WARNFLAGS"
then
if test -n "$GCC"
then
# If we're using gcc we want warning flags.
WARNFLAGS=-Wall
fi
fi
])
dnl ### A macro to determine if we have a "MP" type procfs
AC_DEFUN([AC_MP_PROCFS],
[AC_MSG_CHECKING(for MP procfs)
AC_CACHE_VAL(ac_cv_mp_procfs,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdio.h>
#include <signal.h>
#include <sys/procfs.h>
main()
{
int pid;
char proc[32];
FILE *ctl;
FILE *status;
int cmd;
struct pstatus pstatus;
if ((pid = fork()) == 0) {
pause();
exit(0);
}
sprintf(proc, "/proc/%d/ctl", pid);
if ((ctl = fopen(proc, "w")) == NULL)
goto fail;
sprintf(proc, "/proc/%d/status", pid);
if ((status = fopen (proc, "r")) == NULL)
goto fail;
cmd = PCSTOP;
if (write (fileno (ctl), &cmd, sizeof cmd) < 0)
goto fail;
if (read (fileno (status), &pstatus, sizeof pstatus) < 0)
goto fail;
kill(pid, SIGKILL);
exit(0);
fail:
kill(pid, SIGKILL);
exit(1);
}
]])],[ac_cv_mp_procfs=yes],[ac_cv_mp_procfs=no],[
# Guess or punt.
case "$host_os" in
svr4.2*|svr5*)
ac_cv_mp_procfs=yes
;;
*)
ac_cv_mp_procfs=no
;;
esac
])])
AC_MSG_RESULT($ac_cv_mp_procfs)
if test "$ac_cv_mp_procfs" = yes
then
AC_DEFINE([HAVE_MP_PROCFS], 1,
[Define if you have a SVR4 MP type procfs.
I.E. /dev/xxx/ctl, /dev/xxx/status.
Also implies that you have the pr_lwp member in prstatus.])
fi
])
dnl ### A macro to determine if procfs is pollable.
AC_DEFUN([AC_POLLABLE_PROCFS],
[AC_MSG_CHECKING(for pollable procfs)
AC_CACHE_VAL(ac_cv_pollable_procfs,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdio.h>
#include <signal.h>
#include <sys/procfs.h>
#include <sys/stropts.h>
#include <poll.h>
#ifdef HAVE_MP_PROCFS
#define PIOCSTOP PCSTOP
#define POLLWANT POLLWRNORM
#define PROC "/proc/%d/ctl"
#define PROC_MODE "w"
int IOCTL (int fd, int cmd, int arg) {
return write (fd, &cmd, sizeof cmd);
}
#else
#define POLLWANT POLLPRI
#define PROC "/proc/%d"
#define PROC_MODE "r+"
#define IOCTL ioctl
#endif
main()
{
int pid;
char proc[32];
FILE *pfp;
struct pollfd pfd;
if ((pid = fork()) == 0) {
pause();
exit(0);
}
sprintf(proc, PROC, pid);
if ((pfp = fopen(proc, PROC_MODE)) == NULL)
goto fail;
if (IOCTL(fileno(pfp), PIOCSTOP, NULL) < 0)
goto fail;
pfd.fd = fileno(pfp);
pfd.events = POLLWANT;
if (poll(&pfd, 1, 0) < 0)
goto fail;
if (!(pfd.revents & POLLWANT))
goto fail;
kill(pid, SIGKILL);
exit(0);
fail:
kill(pid, SIGKILL);
exit(1);
}
]])],[ac_cv_pollable_procfs=yes],[ac_cv_pollable_procfs=no],[
# Guess or punt.
case "$host_os" in
solaris2*|irix5*|svr4.2uw*|svr5*)
ac_cv_pollable_procfs=yes
;;
*)
ac_cv_pollable_procfs=no
;;
esac
])])
AC_MSG_RESULT($ac_cv_pollable_procfs)
if test "$ac_cv_pollable_procfs" = yes
then
AC_DEFINE([HAVE_POLLABLE_PROCFS], 1,
[Define if you have SVR4 and the poll system call works on /proc files.])
fi
])
dnl ### A macro to determine if the prstatus structure has a pr_syscall member.
AC_DEFUN([AC_STRUCT_PR_SYSCALL],
[AC_MSG_CHECKING(for pr_syscall in struct prstatus)
AC_CACHE_VAL(ac_cv_struct_pr_syscall,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/procfs.h>]], [[#ifdef HAVE_MP_PROCFS
pstatus_t s;
s.pr_lwp.pr_syscall
#else
prstatus_t s;
s.pr_syscall
#endif]])],[ac_cv_struct_pr_syscall=yes],[ac_cv_struct_pr_syscall=no])])
AC_MSG_RESULT($ac_cv_struct_pr_syscall)
if test "$ac_cv_struct_pr_syscall" = yes
then
AC_DEFINE([HAVE_PR_SYSCALL], 1,
[Define if the prstatus structure in sys/procfs.h has a pr_syscall member.])
fi
])
dnl ### A macro to determine whether stat64 is defined.
AC_DEFUN([AC_STAT64],
[AC_MSG_CHECKING(for stat64 in (asm|sys)/stat.h)
AC_CACHE_VAL(ac_cv_type_stat64,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef LINUX
#include <linux/types.h>
#include <asm/stat.h>
#else
#include <sys/stat.h>
#endif]], [[struct stat64 st;]])],[ac_cv_type_stat64=yes],[ac_cv_type_stat64=no])])
AC_MSG_RESULT($ac_cv_type_stat64)
if test "$ac_cv_type_stat64" = yes
then
AC_DEFINE([HAVE_STAT64], 1,
[Define if stat64 is available in asm/stat.h.])
fi
])
dnl ### A macro to determine if off_t is a long long
AC_DEFUN([AC_OFF_T_IS_LONG_LONG],
[AC_MSG_CHECKING(for long long off_t)
AC_CACHE_VAL(ac_cv_have_long_long_off_t,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/types.h>
main () {
if (sizeof (off_t) == sizeof (long long) &&
sizeof (off_t) > sizeof (long))
return 0;
return 1;
}
]])],[ac_cv_have_long_long_off_t=yes],[ac_cv_have_long_long_off_t=no],[# Should try to guess here
ac_cv_have_long_long_off_t=no
])])
AC_MSG_RESULT($ac_cv_have_long_long_off_t)
if test "$ac_cv_have_long_long_off_t" = yes
then
AC_DEFINE([HAVE_LONG_LONG_OFF_T], 1, [Define if off_t is a long long.])
fi
])
dnl ### A macro to determine if rlim_t is a long long
AC_DEFUN([AC_RLIM_T_IS_LONG_LONG],
[AC_MSG_CHECKING(for long long rlim_t)
AC_CACHE_VAL(ac_cv_have_long_long_rlim_t,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
main () {
if (sizeof (rlim_t) == sizeof (long long) &&
sizeof (rlim_t) > sizeof (long))
return 0;
return 1;
}
]])],[ac_cv_have_long_long_rlim_t=yes],[ac_cv_have_long_long_rlim_t=no],[# Should try to guess here
ac_cv_have_long_long_rlim_t=no
])])
AC_MSG_RESULT($ac_cv_have_long_long_rlim_t)
if test "$ac_cv_have_long_long_rlim_t" = yes
then
AC_DEFINE([HAVE_LONG_LONG_RLIM_T], 1, [Define if rlim_t is a long long.])
fi
])
dnl ### A macro to determine endianness of long long
AC_DEFUN([AC_LITTLE_ENDIAN_LONG_LONG],
[AC_MSG_CHECKING(for little endian long long)
AC_CACHE_VAL(ac_cv_have_little_endian_long_long,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
int main () {
union {
long long ll;
long l [2];
} u;
u.ll = 0x12345678;
if (u.l[0] == 0x12345678)
return 0;
return 1;
}
]])],[ac_cv_have_little_endian_long_long=yes],[ac_cv_have_little_endian_long_long=no],[# Should try to guess here
ac_cv_have_little_endian_long_long=no
])])
AC_MSG_RESULT($ac_cv_have_little_endian_long_long)
if test "$ac_cv_have_little_endian_long_long" = yes
then
AC_DEFINE([HAVE_LITTLE_ENDIAN_LONG_LONG], 1,
[Define if long long is little-endian.])
fi
])

105
bjm.c
View File

@ -26,22 +26,15 @@
* 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. */
@ -49,7 +42,7 @@
#define MOD_RUNNING 1
#define MOD_DELETED 2
#define MOD_AUTOCLEAN 4
#define MOD_VISITED 8
#define MOD_VISITED 8
#define MOD_USED_ONCE 16
#define MOD_JUST_FREED 32
#define MOD_INITIALIZING 64
@ -98,52 +91,54 @@ static const struct xlat modflags[] = {
};
int
sys_query_module(tcp)
struct tcb *tcp;
sys_query_module(struct tcb *tcp)
{
if (exiting(tcp)) {
if (entering(tcp)) {
printstr(tcp, tcp->u_arg[0], -1);
tprintf(", ");
tprints(", ");
printxval(which, tcp->u_arg[1], "QM_???");
tprintf(", ");
if (!verbose(tcp)) {
tprintf("%#lx, %lu, %#lx", tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[4]);
} else if (tcp->u_rval!=0) {
size_t ret;
umove(tcp, tcp->u_arg[4], &ret);
tprintf("%#lx, %lu, %Zu", tcp->u_arg[2], tcp->u_arg[3], ret);
tprints(", ");
} 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;
size_t ret;
umove(tcp, tcp->u_arg[2], &mi);
tprintf("{address=%#lx, size=%lu, flags=", mi.addr, mi.size);
printflags(modflags, mi.flags, "MOD_???");
tprintf(", usecount=%lu}", mi.usecount);
umove(tcp, tcp->u_arg[4], &ret);
tprintf(", %Zu", ret);
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)) {
size_t ret;
umove(tcp, tcp->u_arg[4], &ret);
tprintf("{");
tprints("{");
if (!abbrev(tcp)) {
char* data = (char*)malloc(tcp->u_arg[3]);
char* data = malloc(tcp->u_arg[3]);
char* mod = data;
size_t idx;
if (data==NULL) {
if (!data) {
fprintf(stderr, "out of memory\n");
tprintf(" /* %Zu entries */ ", ret);
} else {
umoven(tcp, tcp->u_arg[2], tcp->u_arg[3], data);
for (idx=0; idx<ret; idx++) {
if (idx!=0)
tprintf(",");
tprintf("%s", mod);
mod+=strlen(mod)+1;
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);
}
@ -151,22 +146,27 @@ struct tcb *tcp;
tprintf(" /* %Zu entries */ ", ret);
tprintf("}, %Zu", ret);
} else if (tcp->u_arg[1]==QM_SYMBOLS) {
size_t ret;
umove(tcp, tcp->u_arg[4], &ret);
tprintf("{");
tprints("{");
if (!abbrev(tcp)) {
char* data = (char *)malloc(tcp->u_arg[3]);
char* data = malloc(tcp->u_arg[3]);
struct module_symbol* sym = (struct module_symbol*)data;
size_t idx;
if (data==NULL) {
if (!data) {
fprintf(stderr, "out of memory\n");
tprintf(" /* %Zu entries */ ", ret);
} else {
umoven(tcp, tcp->u_arg[2], tcp->u_arg[3], data);
for (idx=0; idx<ret; idx++) {
tprintf("{name=%s, value=%lu} ", data+(long)sym->name, sym->value);
sym++;
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);
}
@ -182,8 +182,7 @@ struct tcb *tcp;
}
int
sys_create_module(tcp)
struct tcb *tcp;
sys_create_module(struct tcb *tcp)
{
if (entering(tcp)) {
printpath(tcp, tcp->u_arg[0]);
@ -193,8 +192,7 @@ struct tcb *tcp;
}
int
sys_init_module(tcp)
struct tcb *tcp;
sys_init_module(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%#lx, ", tcp->u_arg[0]);
@ -203,4 +201,3 @@ struct tcb *tcp;
}
return 0;
}
#endif /* LINUX */

283
block.c Normal file
View File

@ -0,0 +1,283 @@
/*
* Copyright (c) 2009, 2010 Jeff Mahoney <jeffm@suse.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.
*/
#include "defs.h"
#include <linux/blkpg.h>
#include <linux/fs.h>
#include <linux/hdreg.h>
/* ioctls <= 114 are present in Linux 2.4. The following ones have been
* added since then and headers containing them may not be available on
* every system. */
#define BLKTRACE_BDEV_SIZE 32
struct blk_user_trace_setup {
char name[BLKTRACE_BDEV_SIZE]; /* output */
uint16_t act_mask; /* input */
uint32_t buf_size; /* input */
uint32_t buf_nr; /* input */
uint64_t start_lba;
uint64_t end_lba;
uint32_t pid;
};
#ifndef BLKTRACESETUP
#define BLKTRACESETUP _IOWR(0x12,115,struct blk_user_trace_setup)
#endif
#ifndef BLKTRACESTART
#define BLKTRACESTART _IO(0x12,116)
#endif
#ifndef BLKTRACESTOP
#define BLKTRACESTOP _IO(0x12,117)
#endif
#ifndef BLKTRACETEARDOWN
#define BLKTRACETEARDOWN _IO(0x12,118)
#endif
#ifndef BLKDISCARD
#define BLKDISCARD _IO(0x12,119)
#endif
#ifndef BLKIOMIN
#define BLKIOMIN _IO(0x12,120)
#endif
#ifndef BLKIOOPT
#define BLKIOOPT _IO(0x12,121)
#endif
#ifndef BLKALIGNOFF
#define BLKALIGNOFF _IO(0x12,122)
#endif
#ifndef BLKPBSZGET
#define BLKPBSZGET _IO(0x12,123)
#endif
#ifndef BLKDISCARDZEROES
#define BLKDISCARDZEROES _IO(0x12,124)
#endif
#ifndef BLKSECDISCARD
#define BLKSECDISCARD _IO(0x12,125)
#endif
static const struct xlat blkpg_ops[] = {
{ BLKPG_ADD_PARTITION, "BLKPG_ADD_PARTITION", },
{ BLKPG_DEL_PARTITION, "BLKPG_DEL_PARTITION", },
{ 0, NULL },
};
static void
print_blkpg_req(struct tcb *tcp, struct blkpg_ioctl_arg *blkpg)
{
struct blkpg_partition p;
tprints("{");
printxval(blkpg_ops, blkpg->op, "BLKPG_???");
tprintf(", flags=%d, datalen=%d, ",
blkpg->flags, blkpg->datalen);
if (umove(tcp, (long) blkpg->data, &p) < 0)
tprintf("%#lx}", (long) blkpg->data);
else
tprintf("{start=%lld, length=%lld, pno=%d, "
"devname=\"%.*s\", volname=\"%.*s\"}}",
p.start, p.length, p.pno,
(int) sizeof(p.devname), p.devname,
(int) sizeof(p.volname), p.volname);
}
int
block_ioctl(struct tcb *tcp, long code, long arg)
{
switch (code) {
/* take arg as a value, not as a pointer */
case BLKRASET:
case BLKFRASET:
if (entering(tcp))
tprintf(", %ld", arg);
break;
/* take a signed int */
case BLKROSET:
case BLKBSZSET:
if (entering(tcp)) {
int val;
if (umove(tcp, arg, &val) < 0)
tprintf(", %#lx", arg);
else
tprintf(", %d", val);
}
break;
/* returns an unsigned short */
case BLKSECTGET:
if (exiting(tcp)) {
unsigned short val;
if (syserror(tcp) || umove(tcp, arg, &val) < 0)
tprintf(", %#lx", arg);
else
tprintf(", %u", (unsigned)val);
}
break;
/* return a signed int */
case BLKROGET:
case BLKBSZGET:
case BLKSSZGET:
case BLKALIGNOFF:
if (exiting(tcp)) {
int val;
if (syserror(tcp) || umove(tcp, arg, &val) < 0)
tprintf(", %#lx", arg);
else
tprintf(", %d", val);
}
break;
/* return an unsigned int */
case BLKPBSZGET:
case BLKIOMIN:
case BLKIOOPT:
case BLKDISCARDZEROES:
if (exiting(tcp)) {
unsigned int val;
if (syserror(tcp) || umove(tcp, arg, &val) < 0)
tprintf(", %#lx", arg);
else
tprintf(", %u", val);
}
break;
/* return a signed long */
case BLKRAGET:
case BLKFRAGET:
if (exiting(tcp)) {
long val;
if (syserror(tcp) || umove(tcp, arg, &val) < 0)
tprintf(", %#lx", arg);
else
tprintf(", %ld", val);
}
break;
/* returns an unsigned long */
case BLKGETSIZE:
if (exiting(tcp)) {
unsigned long val;
if (syserror(tcp) || umove(tcp, arg, &val) < 0)
tprintf(", %#lx", arg);
else
tprintf(", %lu", val);
}
break;
#ifdef HAVE_BLKGETSIZE64
/* return an uint64_t */
case BLKGETSIZE64:
if (exiting(tcp)) {
uint64_t val;
if (syserror(tcp) || umove(tcp, arg, &val) < 0)
tprintf(", %#lx", arg);
else
tprintf(", %" PRIu64, val);
}
break;
#endif
/* More complex types */
case BLKDISCARD:
case BLKSECDISCARD:
if (entering(tcp)) {
uint64_t range[2];
if (umove(tcp, arg, range) < 0)
tprintf(", %#lx", arg);
else
tprintf(", {%" PRIx64 ", %" PRIx64 "}",
range[0], range[1]);
}
break;
case HDIO_GETGEO:
if (exiting(tcp)) {
struct hd_geometry geo;
if (syserror(tcp) || umove(tcp, arg, &geo) < 0)
tprintf(", %#lx", arg);
else
tprintf(", {heads=%u, sectors=%u, "
"cylinders=%u, start=%lu}",
(unsigned)geo.heads,
(unsigned)geo.sectors,
(unsigned)geo.cylinders,
geo.start);
}
break;
case BLKPG:
if (entering(tcp)) {
struct blkpg_ioctl_arg blkpg;
if (umove(tcp, arg, &blkpg) < 0)
tprintf(", %#lx", arg);
else {
tprints(", ");
print_blkpg_req(tcp, &blkpg);
}
}
break;
case BLKTRACESETUP:
if (entering(tcp)) {
struct blk_user_trace_setup buts;
if (umove(tcp, arg, &buts) < 0)
tprintf(", %#lx", arg);
else
tprintf(", {act_mask=%u, buf_size=%u, "
"buf_nr=%u, start_lba=%" PRIu64 ", "
"end_lba=%" PRIu64 ", pid=%u}",
(unsigned)buts.act_mask, buts.buf_size,
buts.buf_nr, buts.start_lba,
buts.end_lba, buts.pid);
}
if (exiting(tcp)) {
struct blk_user_trace_setup buts;
if (syserror(tcp) || umove(tcp, arg, &buts) < 0)
tprintf(", %#lx", arg);
else
tprintf(", {name=\"%.*s\"}",
(int) sizeof(buts.name), buts.name);
}
break;
/* No arguments or unhandled */
case BLKTRACESTART:
case BLKTRACESTOP:
case BLKTRACETEARDOWN:
case BLKFLSBUF: /* Requires driver knowlege */
case BLKRRPART: /* No args */
default:
if (entering(tcp))
tprintf(", %#lx", arg);
break;
};
return 1;
}

View File

@ -1,46 +1,15 @@
dnl Process this file with autoconf to create configure. Use autoreconf.
AC_PREREQ(2.57)
AC_INIT([strace],[4.5.19])
AC_INIT([strace],[4.7])
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_INIT_AUTOMAKE([foreign check-news dist-xz no-dist-gzip silent-rules])
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_PROG_CC
AC_USE_SYSTEM_EXTENSIONS
AC_MSG_CHECKING([for supported architecture])
case "$host_cpu" in
@ -79,6 +48,9 @@ alpha*)
powerpc*)
arch=powerpc
AC_DEFINE([POWERPC], 1, [Define for the PowerPC architecture.])
if test $host_cpu = powerpc64; then
AC_DEFINE([POWERPC64], 1, [Define for the PowerPC64 architecture.])
fi
;;
arm*)
arch=arm
@ -109,8 +81,15 @@ 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.])
AC_TRY_COMPILE(
[#ifndef __ILP32__
# error not x32
#endif], [], arch=x32, arch=x86_64)
if test "$arch" = "x86_64"; then
AC_DEFINE([X86_64], 1, [Define for the 64bit AMD x86-64 architecture.])
else
AC_DEFINE([X32], 1, [Define for the 32bit AMD x86-64 architecture.])
fi
;;
cris|crisv10)
arch=crisv10
@ -120,6 +99,14 @@ crisv32)
arch=crisv32
AC_DEFINE([CRISV32], 1, [Define for the CRISv32 architecture.])
;;
tile*)
arch=tile
AC_DEFINE([TILE], 1, [Define for the Tile architecture])
;;
microblaze*)
arch=microblaze
AC_DEFINE([MICROBLAZE], 1, [Define for the MicroBlaze architecture.])
;;
*)
AC_MSG_RESULT([NO!])
AC_MSG_ERROR([architecture $host_cpu is not supported by strace])
@ -127,66 +114,38 @@ crisv32)
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
AM_CONDITIONAL([X32], [test x$arch = xx32])
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
gl_WARN_ADD([-Wall])
gl_WARN_ADD([-Wwrite-strings])
AC_SUBST([WARN_CFLAGS])
AC_PROG_CPP
AC_PROG_GCC_TRADITIONAL
AC_PROG_INSTALL
AC_C_CONST
AC_C_BIGENDIAN
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_CHECK_MEMBERS(m4_normalize([
struct stat.st_aclcnt,
struct stat.st_blksize,
struct stat.st_blocks,
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
@ -201,74 +160,58 @@ AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,,
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_FUNCS(m4_normalize([
fork
if_indextoname
inet_ntop
prctl
process_vm_readv
sendmsg
sigaction
stpcpy
strerror
strsignal
_sys_siglist
sys_siglist
]))
AC_CHECK_HEADERS(m4_normalize([
asm/cachectl.h
asm/sysmips.h
inttypes.h
ioctls.h
libaio.h
linux/capability.h
linux/ptrace.h
linux/utsname.h
mqueue.h
netinet/sctp.h
poll.h
stropts.h
sys/acl.h
sys/asynch.h
sys/conf.h
sys/epoll.h
sys/filio.h
sys/ioctl.h
sys/poll.h
sys/ptrace.h
sys/reg.h
sys/uio.h
sys/vfs.h
]))
AC_CHECK_HEADERS([linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h],
[], [], [#include <stddef.h>
#include <linux/socket.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],,,
@ -289,11 +232,46 @@ AC_CHECK_MEMBERS([struct sigcontext.sc_hi2],,, [#include <signal.h>
# include <asm/sigcontext.h>
#endif])
AC_CHECK_MEMBERS([struct utsname.domainname],,, [#include <sys/utsname.h>])
AC_CHECK_DECLS([sys_errlist])
AC_CHECK_DECLS([sys_siglist, _sys_siglist],,, [#include <signal.h>])
AC_CHECK_DECLS(m4_normalize([
PTRACE_EVENT_CLONE,
PTRACE_EVENT_EXEC,
PTRACE_EVENT_EXIT,
PTRACE_EVENT_FORK,
PTRACE_EVENT_VFORK,
PTRACE_EVENT_VFORK_DONE,
PTRACE_GETEVENTMSG,
PTRACE_GETSIGINFO,
PTRACE_O_TRACECLONE,
PTRACE_O_TRACEEXEC,
PTRACE_O_TRACEEXIT,
PTRACE_O_TRACEFORK,
PTRACE_O_TRACESYSGOOD,
PTRACE_O_TRACEVFORK,
PTRACE_SETOPTIONS
]),,, [#include <sys/ptrace.h>])
AC_CHECK_DECLS(m4_normalize([
LO_FLAGS_AUTOCLEAR,
LO_FLAGS_PARTSCAN
]),,, [#include <linux/loop.h>])
AC_CACHE_CHECK([for BLKGETSIZE64], [ac_cv_have_blkgetsize64],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
#include <stdlib.h>
#include <linux/fs.h>], [return !BLKGETSIZE64;])],
[ac_cv_have_blkgetsize64=yes], [ac_cv_have_blkgetsize64=no])]
if test $ac_cv_have_blkgetsize64 = yes; then
AC_DEFINE([HAVE_BLKGETSIZE64], [1], [Define to 1 if you have BLKGETSIZE64.])
fi)
AC_CHECK_SIZEOF([long])
AC_CHECK_SIZEOF([rlim_t],,[#include <sys/resource.h>])
AC_PATH_PROG([PERL], [perl])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([Makefile tests/Makefile])
AC_OUTPUT

69
count.c
View File

@ -31,8 +31,6 @@
* 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"
@ -47,22 +45,16 @@ static struct call_counts *countv[SUPPORTED_PERSONALITIES];
static struct timeval shortest = { 1000000, 0 };
int
void
count_syscall(struct tcb *tcp, struct timeval *tv)
{
tcp->flags &= ~TCB_INSYSCALL;
if (tcp->scno < 0 || tcp->scno >= nsyscalls)
return 0;
if (!SCNO_IN_RANGE(tcp->scno))
return;
if (!counts)
{
if (!counts) {
counts = calloc(nsyscalls, sizeof(*counts));
if (!counts)
{
fprintf(stderr,
"strace: out of memory for call counts\n");
exit(1);
}
die_out_of_memory();
}
counts[tcp->scno].calls++;
@ -70,13 +62,10 @@ count_syscall(struct tcb *tcp, struct timeval *tv)
counts[tcp->scno].errors++;
tv_sub(tv, tv, &tcp->etime);
#ifdef LINUX
if (tv_cmp(tv, &tcp->dtime) > 0)
{
if (tv_cmp(tv, &tcp->dtime) > 0) {
static struct timeval one_tick;
if (one_tick.tv_usec == 0)
{
if (one_tick.tv_usec == 0) {
/* Initialize it. */
struct itimerval it;
@ -89,20 +78,16 @@ count_syscall(struct tcb *tcp, struct timeval *tv)
if (tv_nz(&tcp->dtime))
*tv = tcp->dtime;
else if (tv_cmp(tv, &one_tick) > 0)
{
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
@ -132,7 +117,7 @@ static int (*sortfun)();
static struct timeval overhead = { -1, -1 };
void
set_sortby(char *sortby)
set_sortby(const char *sortby)
{
if (strcmp(sortby, "time") == 0)
sortfun = time_cmp;
@ -142,10 +127,8 @@ set_sortby(char *sortby)
sortfun = syscall_cmp;
else if (strcmp(sortby, "nothing") == 0)
sortfun = NULL;
else
{
fprintf(stderr, "invalid sortby: `%s'\n", sortby);
exit(1);
else {
error_msg_and_die("invalid sortby: '%s'", sortby);
}
}
@ -162,24 +145,19 @@ call_summary_pers(FILE *outf)
int call_cum, error_cum;
struct timeval tv_cum, dtv;
double percent;
char *dashes = "-------------------------";
const 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;
}
die_out_of_memory();
call_cum = error_cum = tv_cum.tv_sec = tv_cum.tv_usec = 0;
if (overhead.tv_sec == -1)
{
if (overhead.tv_sec == -1) {
tv_mul(&overhead, &shortest, 8);
tv_div(&overhead, &overhead, 10);
}
for (i = 0; i < nsyscalls; i++)
{
for (i = 0; i < nsyscalls; i++) {
sorted_count[i] = i;
if (counts == NULL || counts[i].calls == 0)
continue;
@ -196,10 +174,8 @@ call_summary_pers(FILE *outf)
"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++)
{
if (counts) {
for (i = 0; i < nsyscalls; i++) {
j = sorted_count[i];
if (counts[j].calls == 0)
continue;
@ -212,7 +188,7 @@ call_summary_pers(FILE *outf)
/ 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,
(long) (1000000 * dtv.tv_sec + dtv.tv_usec),
counts[j].calls,
error_str, sysent[j].sys_name);
}
@ -233,10 +209,9 @@ call_summary_pers(FILE *outf)
void
call_summary(FILE *outf)
{
int i, old_pers = current_personality;
int i, old_pers = current_personality;
for (i = 0; i < SUPPORTED_PERSONALITIES; ++i)
{
for (i = 0; i < SUPPORTED_PERSONALITIES; ++i) {
if (!countv[i])
continue;
@ -244,8 +219,8 @@ call_summary(FILE *outf)
set_personality(i);
if (i)
fprintf(outf,
"System call usage summary for %u bit mode:\n",
personality_wordsize[current_personality] * 8);
"System call usage summary for %d bit mode:\n",
(int) (current_wordsize * 8));
call_summary_pers(outf);
}

3
debian/.cvsignore vendored
View File

@ -1,3 +0,0 @@
substvars
files
tmp

79
debian/changelog vendored
View File

@ -1,3 +1,81 @@
strace (4.7-1) unstable; urgency=low
* New upstream version.
+ Fixed sockaddr_un.sun_path name in decoded output, closes: #554946
+ Avoid potential core file clobbering on exit, closes: #656398
+ Fixed a typo in documentation, closes: #653309
-- Dmitry V. Levin <ldv@altlinux.org> Wed, 02 May 2012 12:34:56 +0000
strace (4.6-1) unstable; urgency=low
* New upstream version.
+ Added HDIO_* ioctl names, closes: #450953
+ Fixed stat64 decoding on mips, closes: #599028
+ Fixed misleading italics in the manual page, closes: #589323
-- Dmitry V. Levin <ldv@altlinux.org> Mon, 14 Mar 2011 15:16:17 +0000
strace (4.5.20-2.3) unstable; urgency=low
* Non-maintainer upload.
* Add sh4 to arch list.
* Add powerpcspe to arch list (Closes: #579842).
-- Nobuhiro Iwamatsu <iwamatsu@debian.org> Tue, 22 Mar 2011 09:03:49 +0900
strace (4.5.20-2.2) unstable; urgency=low
* Non-maintainer upload.
* Add sh4 to arch list (Closes: #537105).
-- Nobuhiro Iwamatsu <iwamatsu@debian.org> Wed, 09 Mar 2011 09:22:01 +0900
strace (4.5.20-2.1) unstable; urgency=low
* NMU, added armhf support. (Closes: #596960)
-- Konstantinos Margaritis <markos@debian.org> Thu, 24 Feb 2011 14:47:54 +0000
strace (4.5.20-2) unstable; urgency=low
* Add missing sparc syscall defines to fix FTBFS on sparc.
-- Frederik Schüler <fs@debian.org> Tue, 04 May 2010 14:31:46 +0200
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 ]
@ -5,6 +83,7 @@ strace (4.5.19-1) unstable; urgency=low
+ 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

17
debian/control vendored
View File

@ -1,16 +1,14 @@
Source: strace
Maintainer: Frederik Schüler <fs@debian.org>
Section: utils
Priority: standard
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.1.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
Section: utils
Priority: standard
Depends: ${shlibs:Depends}
Architecture: alpha amd64 arm armeb armel armhf hppa i386 ia64 m68k mips mipsel powerpc powerpcspe ppc64 s390 s390x sh4 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.
@ -23,9 +21,8 @@ Description: A system call tracer
Package: strace64
Architecture: i386 powerpc s390 sparc
Section: utils
Priority: extra
Depends: ${shlibs:Depends}
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.
@ -43,8 +40,8 @@ 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
Depends: ${shlibs:Depends}
Architecture: alpha amd64 arm armeb armel armhf hppa i386 ia64 m68k mips mipsel powerpc powerpcspe ppc64 s390 sh4 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.

2
debian/copyright vendored
View File

@ -37,5 +37,3 @@ 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$

37
debian/rules vendored
View File

@ -2,6 +2,19 @@
#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)
@ -11,7 +24,7 @@ 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 += stamp-build64
extra_build_targets += build64-stamp
endif
ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
@ -20,10 +33,13 @@ else
CONFIG_OPTS = --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
endif
all build: stamp-build $(extra_build_targets)
all build: build-stamp $(extra_build_targets)
stamp-%: %/Makefile
%-stamp: %/Makefile
$(MAKE) -C $*
ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
$(MAKE) -C $* check
endif
touch $@
build/Makefile:
@ -35,20 +51,20 @@ build64/Makefile:
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
rm -rf debian/strace debian/strace-udeb debian/substvars debian/files debian/files~
rm -rf build64 stamp-build64 strace64.1
rm -rf build stamp-build
binary: binary-indep binary-arch
binary-indep:
binary-arch: build checkroot
test -f stamp-build || make $(MFLAGS) -f debian/rules build
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 stamp-build64 && ( mv build64/strace build64/strace64 ; \
test -f build64-stamp && ( mv build64/strace build64/strace64 ; \
cp strace.1 strace64.1 ) || true
dh_testdir -s
@ -68,6 +84,3 @@ binary-arch: build checkroot
dh_gencontrol -s
dh_md5sums -s
dh_builddeb -s
checkroot:
test root = "`whoami`"

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (quilt)

2
debian/watch vendored Normal file
View File

@ -0,0 +1,2 @@
version=3
opts="uversionmangle=s/-/./g" http://sf.net/strace/strace-([[:digit:].-]*)\.tar\.xz

968
defs.h

File diff suppressed because it is too large Load Diff

396
desc.c
View File

@ -26,33 +26,26 @@
* 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>
# include <sys/epoll.h>
#endif
#ifdef HAVE_LIBAIO_H
#include <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 */
# define flock64 flock /* Horrid hack */
# define printflock printflock64 /* Horrider hack */
#endif
static const struct xlat fcntlcmds[] = {
{ F_DUPFD, "F_DUPFD" },
{ F_GETFD, "F_GETFD" },
@ -237,8 +230,8 @@ 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) {
if (current_wordsize != sizeof(fl.l_start)) {
if (current_wordsize == 4) {
/* 32-bit x86 app on x86_64 and similar cases */
struct {
short int l_type;
@ -248,7 +241,7 @@ printflock(struct tcb *tcp, long addr, int getlk)
int32_t l_pid; /* pid_t */
} fl32;
if (umove(tcp, addr, &fl32) < 0) {
tprintf("{...}");
tprints("{...}");
return;
}
fl.l_type = fl32.l_type;
@ -259,26 +252,26 @@ printflock(struct tcb *tcp, long addr, int getlk)
} else {
/* let people know we have a problem here */
tprintf("{ <decode error: unsupported wordsize %d> }",
personality_wordsize[current_personality]);
current_wordsize);
return;
}
} else
#endif
{
if (umove(tcp, addr, &fl) < 0) {
tprintf("{...}");
tprints("{...}");
return;
}
}
tprintf("{type=");
tprints("{type=");
printxval(lockfcmds, fl.l_type, "F_???");
tprintf(", whence=");
tprints(", 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("}");
tprints("}");
}
#endif
@ -290,18 +283,18 @@ printflock64(struct tcb *tcp, long addr, int getlk)
struct flock64 fl;
if (umove(tcp, addr, &fl) < 0) {
tprintf("{...}");
tprints("{...}");
return;
}
tprintf("{type=");
tprints("{type=");
printxval(lockfcmds, fl.l_type, "F_???");
tprintf(", whence=");
tprints(", whence=");
printxval(whence, fl.l_whence, "SEEK_???");
tprintf(", start=%lld, len=%lld", (long long) fl.l_start, (long long) fl.l_len);
if (getlk)
tprintf(", pid=%lu}", (unsigned long) fl.l_pid);
else
tprintf("}");
tprints("}");
}
#endif
@ -309,11 +302,12 @@ int
sys_fcntl(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
printxval(fcntlcmds, tcp->u_arg[1], "F_???");
switch (tcp->u_arg[1]) {
case F_SETFD:
tprintf(", ");
tprints(", ");
printflags(fdflags, tcp->u_arg[2], "FD_???");
break;
case F_SETOWN: case F_DUPFD:
@ -323,14 +317,14 @@ sys_fcntl(struct tcb *tcp)
tprintf(", %ld", tcp->u_arg[2]);
break;
case F_SETFL:
tprintf(", ");
tprints(", ");
tprint_open_modes(tcp->u_arg[2]);
break;
case F_SETLK: case F_SETLKW:
#ifdef F_FREESP
case F_FREESP:
#endif
tprintf(", ");
tprints(", ");
printflock(tcp, tcp->u_arg[2], 0);
break;
#if _LFS64_LARGEFILE
@ -345,19 +339,19 @@ sys_fcntl(struct tcb *tcp)
#if defined(F_SETLKW64) && F_SETLKW64 + 0 != F_SETLKW
case F_SETLKW64:
#endif
tprintf(", ");
tprints(", ");
printflock64(tcp, tcp->u_arg[2], 0);
break;
#endif
#ifdef F_NOTIFY
case F_NOTIFY:
tprintf(", ");
tprints(", ");
printflags(notifyflags, tcp->u_arg[2], "DN_???");
break;
#endif
#ifdef F_SETLEASE
case F_SETLEASE:
tprintf(", ");
tprints(", ");
printxval(lockfcmds, tcp->u_arg[2], "F_???");
break;
#endif
@ -390,14 +384,14 @@ sys_fcntl(struct tcb *tcp)
tcp->auxstr = sprint_open_modes(tcp->u_rval);
return RVAL_HEX|RVAL_STR;
case F_GETLK:
tprintf(", ");
tprints(", ");
printflock(tcp, tcp->u_arg[2], 1);
break;
#if _LFS64_LARGEFILE
#if defined(F_GETLK64) && F_GETLK64+0!=F_GETLK
#if defined(F_GETLK64) && F_GETLK64+0 != F_GETLK
case F_GETLK64:
#endif
tprintf(", ");
tprints(", ");
printflock64(tcp, tcp->u_arg[2], 1);
break;
#endif
@ -422,7 +416,8 @@ int
sys_flock(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
printflags(flockcmds, tcp->u_arg[1], "LOCK_???");
}
return 0;
@ -433,16 +428,7 @@ 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]);
printfd(tcp, tcp->u_arg[0]);
}
return 0;
}
@ -451,9 +437,11 @@ static int
do_dup2(struct tcb *tcp, int flags_arg)
{
if (entering(tcp)) {
tprintf("%ld, %ld", tcp->u_arg[0], tcp->u_arg[1]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
printfd(tcp, tcp->u_arg[1]);
if (flags_arg >= 0) {
tprintf(", ");
tprints(", ");
printflags(open_mode_flags, tcp->u_arg[flags_arg], "O_???");
}
}
@ -466,142 +454,146 @@ 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)
#if defined(ALPHA)
int
sys_getdtablesize(struct tcb *tcp)
{
return 0;
}
#endif /* ALPHA || FREEBSD || SUNOS4 */
#endif
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));
int i, j;
unsigned nfds, fdsize;
fd_set *fds;
static char outstr[1024];
char *sep;
const char *sep;
long arg;
fdsize = args[0];
/* Beware of select(2^31-1, NULL, NULL, NULL) and similar... */
if (args[0] > 1024*1024)
fdsize = 1024*1024;
if (args[0] < 0)
fdsize = 0;
fdsize = (((fdsize + 7) / 8) + sizeof(long)-1) & -sizeof(long);
if (entering(tcp)) {
fds = (fd_set *) malloc(fdsize);
if (fds == NULL)
fprintf(stderr, "out of memory\n");
fds = malloc(fdsize);
if (!fds)
die_out_of_memory();
nfds = args[0];
tprintf("%d", nfds);
for (i = 0; i < 3; i++) {
arg = args[i+1];
if (arg == 0) {
tprintf(", NULL");
tprints(", NULL");
continue;
}
if (fds == NULL || !verbose(tcp)) {
if (!verbose(tcp)) {
tprintf(", %#lx", arg);
continue;
}
if (umoven(tcp, arg, fdsize, (char *) fds) < 0) {
tprintf(", [?]");
tprints(", [?]");
continue;
}
tprintf(", [");
tprints(", [");
for (j = 0, sep = ""; j < nfds; j++) {
if (FD_ISSET(j, fds)) {
tprintf("%s%u", sep, j);
tprints(sep);
printfd(tcp, j);
sep = " ";
}
}
tprintf("]");
tprints("]");
}
free(fds);
tprintf(", ");
tprints(", ");
printtv_bitness(tcp, args[4], bitness, 0);
}
else
{
unsigned int cumlen = 0;
char *sep = "";
else {
static char outstr[1024];
char *outptr;
#define end_outstr (outstr + sizeof(outstr))
const char *sep;
if (syserror(tcp))
return 0;
if ((nfds = tcp->u_rval) == 0) {
nfds = tcp->u_rval;
if (nfds == 0) {
tcp->auxstr = "Timeout";
return RVAL_STR;
}
fds = (fd_set *) malloc(fdsize);
if (fds == NULL)
fprintf(stderr, "out of memory\n");
fds = malloc(fdsize);
if (!fds)
die_out_of_memory();
outstr[0] = '\0';
outptr = outstr;
sep = "";
for (i = 0; i < 3; i++) {
int first = 1;
char str[20];
tcp->auxstr = outstr;
arg = args[i+1];
if (fds == NULL || !arg ||
umoven(tcp, arg, fdsize, (char *) fds) < 0)
if (!arg || umoven(tcp, arg, fdsize, (char *) fds) < 0)
continue;
for (j = 0; j < args[0]; j++) {
if (FD_ISSET(j, fds)) {
if (first) {
sprintf(str, "%s%s [%u", sep,
i == 0 ? "in" :
i == 1 ? "out" :
"except", j);
first = 0;
sep = ", ";
/* +2 chars needed at the end: ']',NUL */
if (outptr < end_outstr - (sizeof(", except [") + sizeof(int)*3 + 2)) {
if (first) {
outptr += sprintf(outptr, "%s%s [%u",
sep,
i == 0 ? "in" : i == 1 ? "out" : "except",
j
);
first = 0;
sep = ", ";
}
else {
outptr += sprintf(outptr, " %u", j);
}
}
else
sprintf(str, " %u", j);
cumlen += strlen(str);
if (cumlen < sizeof(outstr))
strcat(outstr, str);
nfds--;
}
}
if (cumlen)
strcat(outstr, "]");
if (outptr != outstr)
*outptr++ = ']';
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);
if (outptr < end_outstr - (10 + TIMEVAL_TEXT_BUFSIZE)) {
outptr += sprintf(outptr, "%sleft ", sep);
outptr = sprinttv(outptr, tcp, args[4], bitness, /*special:*/ 0);
}
}
#endif /* LINUX */
*outptr = '\0';
tcp->auxstr = outstr;
return RVAL_STR;
#undef end_outstr
}
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("[...]");
tprints("[...]");
return 0;
}
return decode_select(tcp, args, BITNESS_CURRENT);
@ -660,6 +652,9 @@ static const struct xlat epollevents[] = {
#ifdef EPOLLHUP
{ EPOLLHUP, "EPOLLHUP" },
#endif
#ifdef EPOLLRDHUP
{ EPOLLRDHUP, "EPOLLRDHUP" },
#endif
#ifdef EPOLLONESHOT
{ EPOLLONESHOT, "EPOLLONESHOT" },
#endif
@ -669,19 +664,28 @@ static const struct xlat epollevents[] = {
{ 0, NULL }
};
/* Not aliased to printargs_ld: we want it to have a distinct address */
int
sys_epoll_create(struct tcb *tcp)
{
if (entering(tcp))
tprintf("%ld", tcp->u_arg[0]);
return 0;
return printargs_ld(tcp);
}
static const struct xlat epollflags[] = {
#ifdef EPOLL_CLOEXEC
{ EPOLL_CLOEXEC, "EPOLL_CLOEXEC" },
#endif
#ifdef EPOLL_NONBLOCK
{ EPOLL_NONBLOCK, "EPOLL_NONBLOCK" },
#endif
{ 0, NULL }
};
int
sys_epoll_create1(struct tcb *tcp)
{
if (entering(tcp))
printflags(open_mode_flags, tcp->u_arg[0], "O_???");
printflags(epollflags, tcp->u_arg[0], "EPOLL_???");
return 0;
}
@ -689,7 +693,7 @@ sys_epoll_create1(struct tcb *tcp)
static void
print_epoll_event(struct epoll_event *ev)
{
tprintf("{");
tprints("{");
printflags(epollevents, ev->events, "EPOLL???");
/* We cannot know what format the program uses, so print u32 and u64
which will cover every value. */
@ -702,11 +706,14 @@ int
sys_epoll_ctl(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
printxval(epollctls, tcp->u_arg[1], "EPOLL_CTL_???");
tprintf(", %ld, ", tcp->u_arg[2]);
tprints(", ");
printfd(tcp, tcp->u_arg[2]);
tprints(", ");
if (tcp->u_arg[3] == 0)
tprintf("NULL");
tprints("NULL");
else {
#ifdef HAVE_SYS_EPOLL_H
struct epoll_event ev;
@ -714,7 +721,7 @@ sys_epoll_ctl(struct tcb *tcp)
print_epoll_event(&ev);
else
#endif
tprintf("{...}");
tprints("{...}");
}
}
return 0;
@ -723,40 +730,41 @@ sys_epoll_ctl(struct tcb *tcp)
static void
epoll_wait_common(struct tcb *tcp)
{
if (entering(tcp))
tprintf("%ld, ", tcp->u_arg[0]);
else {
if (entering(tcp)) {
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
} else {
if (syserror(tcp))
tprintf("%lx", tcp->u_arg[1]);
else if (tcp->u_rval == 0)
tprintf("{}");
tprints("{}");
else {
#ifdef HAVE_SYS_EPOLL_H
struct epoll_event ev, *start, *cur, *end;
int failed = 0;
tprintf("{");
tprints("{");
start = (struct epoll_event *) tcp->u_arg[1];
end = start + tcp->u_rval;
for (cur = start; cur < end; ++cur) {
if (cur > start)
tprintf(", ");
tprints(", ");
if (umove(tcp, (long) cur, &ev) == 0)
print_epoll_event(&ev);
else {
tprintf("?");
tprints("?");
failed = 1;
break;
}
}
tprintf("}");
tprints("}");
if (failed)
tprintf(" %#lx", (long) start);
#else
tprintf("{...}");
tprints("{...}");
#endif
}
tprintf(", %ld, %ld", tcp->u_arg[2], tcp->u_arg[3]);
tprintf(", %d, %d", (int) tcp->u_arg[2], (int) tcp->u_arg[3]);
}
}
@ -771,8 +779,10 @@ int
sys_epoll_pwait(struct tcb *tcp)
{
epoll_wait_common(tcp);
if (exiting(tcp))
if (exiting(tcp)) {
tprints(", ");
print_sigset(tcp, tcp->u_arg[4], 0);
}
return 0;
}
@ -789,7 +799,7 @@ sys_io_setup(struct tcb *tcp)
if (umove(tcp, tcp->u_arg[1], &user_id) == 0)
tprintf("{%lu}", user_id);
else
tprintf("{...}");
tprints("{...}");
}
}
return 0;
@ -803,6 +813,56 @@ sys_io_destroy(struct tcb *tcp)
return 0;
}
#ifdef HAVE_LIBAIO_H
enum iocb_sub {
SUB_NONE, SUB_COMMON, SUB_POLL, SUB_VECTOR
};
static const char *
iocb_cmd_lookup(unsigned cmd, enum iocb_sub *sub)
{
static char buf[sizeof("%u /* SUB_??? */") + sizeof(int)*3];
static const struct {
const char *name;
enum iocb_sub sub;
} cmds[] = {
{ "pread", SUB_COMMON },
{ "pwrite", SUB_COMMON },
{ "fsync", SUB_NONE },
{ "fdsync", SUB_NONE },
{ "op4", SUB_NONE },
{ "poll", SUB_POLL },
{ "noop", SUB_NONE },
{ "preadv", SUB_VECTOR },
{ "pwritev", SUB_VECTOR },
};
if (cmd < ARRAY_SIZE(cmds)) {
*sub = cmds[cmd].sub;
return cmds[cmd].name;
}
*sub = SUB_NONE;
sprintf(buf, "%u /* SUB_??? */", cmd);
return buf;
}
/* Not defined in libaio.h */
#ifndef IOCB_RESFD
# define IOCB_RESFD (1 << 0)
#endif
static void
print_common_flags(struct iocb *iocb)
{
if (iocb->u.c.flags & IOCB_RESFD)
tprintf("resfd=%d, ", iocb->u.c.resfd);
if (iocb->u.c.flags & ~IOCB_RESFD)
tprintf("flags=%x, ", iocb->u.c.flags);
}
#endif /* HAVE_LIBAIO_H */
int
sys_io_submit(struct tcb *tcp)
{
@ -812,33 +872,68 @@ sys_io_submit(struct tcb *tcp)
nr = tcp->u_arg[1];
/* and if nr is negative? */
if (nr == 0)
tprintf("{}");
tprints("{}");
else {
#ifdef HAVE_LIBAIO_H
long i;
struct iocb *iocbp, **iocbs = (void *)tcp->u_arg[2];
for (i = 0; i < nr; i++, iocbs++) {
enum iocb_sub sub;
struct iocb iocb;
if (i == 0)
tprintf("{");
tprints("{");
else
tprintf(", ");
tprints(", ");
if (umove(tcp, (unsigned long)iocbs, &iocbp) ||
umove(tcp, (unsigned long)iocbp, &iocb)) {
tprintf("{...}");
tprints("{...}");
continue;
}
tprintf("{%p, %u, %hu, %hu, %d}",
iocb.data, iocb.key,
iocb.aio_lio_opcode,
iocb.aio_reqprio, iocb.aio_fildes);
tprints("{");
if (iocb.data)
tprintf("data:%p, ", iocb.data);
if (iocb.key)
tprintf("key:%u, ", iocb.key);
tprintf("%s, ", iocb_cmd_lookup(iocb.aio_lio_opcode, &sub));
if (iocb.aio_reqprio)
tprintf("reqprio:%d, ", iocb.aio_reqprio);
tprintf("filedes:%d", iocb.aio_fildes);
switch (sub) {
case SUB_COMMON:
if (iocb.aio_lio_opcode == IO_CMD_PWRITE) {
tprints(", str:");
printstr(tcp, (unsigned long)iocb.u.c.buf,
iocb.u.c.nbytes);
} else {
tprintf(", buf:%p", iocb.u.c.buf);
}
tprintf(", nbytes:%lu, offset:%llx",
iocb.u.c.nbytes,
iocb.u.c.offset);
print_common_flags(&iocb);
break;
case SUB_VECTOR:
tprintf(", %llx, ", iocb.u.v.offset);
print_common_flags(&iocb);
tprint_iov(tcp, iocb.u.v.nr,
(unsigned long)iocb.u.v.vec,
iocb.aio_lio_opcode == IO_CMD_PWRITEV);
break;
case SUB_POLL:
tprintf(", %x", iocb.u.poll.events);
break;
case SUB_NONE:
break;
}
tprints("}");
}
if (i)
tprintf("}");
tprints("}");
#else
tprintf("{...}");
#warning "libaio-devel is not available => no io_submit decoding"
tprintf("%#lx", tcp->u_arg[2]);
#endif
}
}
@ -855,16 +950,16 @@ sys_io_cancel(struct tcb *tcp)
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}, ",
tprintf("{%p, %u, %u, %u, %d}, ",
iocb.data, iocb.key,
iocb.aio_lio_opcode,
iocb.aio_reqprio, iocb.aio_fildes);
(unsigned)iocb.aio_lio_opcode,
(unsigned)iocb.aio_reqprio, iocb.aio_fildes);
} else
#endif
tprintf("{...}, ");
tprints("{...}, ");
} else {
if (tcp->u_rval < 0)
tprintf("{...}");
tprints("{...}");
else {
#ifdef HAVE_LIBAIO_H
struct io_event event;
@ -874,7 +969,7 @@ sys_io_cancel(struct tcb *tcp)
event.res, event.res2);
else
#endif
tprintf("{...}");
tprints("{...}");
}
}
return 0;
@ -888,8 +983,8 @@ sys_io_getevents(struct tcb *tcp)
tcp->u_arg[2]);
} else {
if (tcp->u_rval == 0) {
tprintf("{}");
} else {
tprints("{}");
} else {
#ifdef HAVE_LIBAIO_H
struct io_event *events = (void *)tcp->u_arg[3];
long i, nr = tcp->u_rval;
@ -898,20 +993,20 @@ sys_io_getevents(struct tcb *tcp)
struct io_event event;
if (i == 0)
tprintf("{");
tprints("{");
else
tprintf(", ");
tprints(", ");
if (umove(tcp, (unsigned long)events, &event) != 0) {
tprintf("{...}");
tprints("{...}");
continue;
}
tprintf("{%p, %p, %ld, %ld}", event.data,
event.obj, event.res, event.res2);
}
tprintf("}, ");
tprints("}, ");
#else
tprintf("{...}");
tprints("{...}");
#endif
}
@ -919,7 +1014,6 @@ sys_io_getevents(struct tcb *tcp)
}
return 0;
}
#endif /* LINUX */
int
sys_select(struct tcb *tcp)
@ -927,7 +1021,6 @@ sys_select(struct tcb *tcp)
return decode_select(tcp, tcp->u_arg, BITNESS_CURRENT);
}
#ifdef LINUX
int
sys_pselect6(struct tcb *tcp)
{
@ -940,7 +1033,7 @@ sys_pselect6(struct tcb *tcp)
if (umove(tcp, tcp->u_arg[5], &data) < 0)
tprintf(", %#lx", tcp->u_arg[5]);
else {
tprintf(", {");
tprints(", {");
if (data.len < sizeof(long))
tprintf("%#lx", (long)data.ss);
else
@ -957,7 +1050,7 @@ do_eventfd(struct tcb *tcp, int flags_arg)
if (entering(tcp)) {
tprintf("%lu", tcp->u_arg[0]);
if (flags_arg >= 0) {
tprintf(", ");
tprints(", ");
printflags(open_mode_flags, tcp->u_arg[flags_arg], "O_???");
}
}
@ -975,4 +1068,3 @@ sys_eventfd2(struct tcb *tcp)
{
return do_eventfd(tcp, 1);
}
#endif

View File

@ -23,8 +23,6 @@
# 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]+/ {

1609
file.c

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
Makefile

View File

@ -1 +0,0 @@
Makefile

View File

@ -1,24 +0,0 @@
# Automake input for freebsd/i386/ subdirectory of strace.
noinst_HEADERS = errnoent.h ioctlent.h signalent.h syscallent.h syscall.h
BUILT_SOURCES = $(noinst_HEADERS)
ioctlent.raw: $(srcdir)/../ioctlent.sh
$(SHELL) $(srcdir)/../ioctlent.sh $(includedir) >$@
ioctlent.h: ioctlent.raw ioctlsort
./ioctlsort >$@
ioctlsort.o: $(srcdir)/../../ioctlsort.c
ioctlsort.o: ioctlent.raw
errnoent.h: $(srcdir)/../../errnoent.sh $(includedir)/errno.h
$(SHELL) $(srcdir)/../../errnoent.sh $(includedir)/errno.h >$@
signalent.h: $(srcdir)/../../signalent.sh $(includedir)/sys/signal.h
$(SHELL) $(srcdir)/../../signalent.sh $(includedir)/sys/signal.h >$@
syscallent.h: $(srcdir)/../syscalls.pl $(srcdir)/../syscalls.cat $(srcdir)/../syscalls.print /usr/src/sys/kern/syscalls.master
$(PERL) $(srcdir)/../syscalls.pl /usr/src/sys/kern/syscalls.master $(srcdir)/../syscalls.print $(srcdir)/../syscalls.cat >$@

View File

@ -1,87 +0,0 @@
"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 */

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +0,0 @@
"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 */

View File

@ -1,274 +0,0 @@
/*
* 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

View File

@ -1,368 +0,0 @@
/*
* 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 */

View File

@ -1,62 +0,0 @@
#!/bin/sh
# initialy from $FreeBSD: src/usr.bin/kdump/mkioctls,v 1.18 2000/08/02 07:37:44 ru Exp $
# changed by Ga<47>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 '};'

View File

@ -1,177 +0,0 @@
#
# Copyright (c) 2000, Ga<47>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

View File

@ -1,156 +0,0 @@
#!/usr/bin/perl -w
#
# Copyright (c) 2000, Ga<47>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";
}
}
}

View File

@ -1,192 +0,0 @@
#
# Copyright (c) 2000, Ga<47>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

View File

@ -1,13 +1,15 @@
#!/usr/bin/perl
eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
& eval 'exec perl -wS "$0" $argv:q'
if 0;
# Convert git log output to ChangeLog format.
my $VERSION = '2009-06-04 08:53'; # UTC
my $VERSION = '2011-10-31 16:06'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
# Copyright (C) 2008-2011 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
@ -60,6 +62,11 @@ OPTIONS:
--since=DATE convert only the logs since DATE;
the default is to convert all log entries.
--format=FMT set format string for commit subject and body;
see 'man git-log' for the list of format metacharacters;
the default is '%s%n%b%n'
--append-dot append a dot to the first line of each commit message if
there is no other punctuation or blank at the end.
--help display this help and exit
--version output version information and exit
@ -95,16 +102,23 @@ sub quoted_cmd(@)
}
{
my $since_date = '1970-01-01 UTC';
my $since_date;
my $format_string = '%s%n%b%n';
my $append_dot = 0;
GetOptions
(
help => sub { usage 0 },
version => sub { print "$ME version $VERSION\n"; exit },
'since=s' => \$since_date,
'format=s' => \$format_string,
'append-dot' => \$append_dot,
) or usage 1;
my @cmd = (qw (git log --log-size), "--since=$since_date",
'--pretty=format:%ct %an <%ae>%n%n%s%n%b%n', @ARGV);
defined $since_date
and unshift @ARGV, "--since=$since_date";
my @cmd = (qw (git log --log-size),
'--pretty=format:%ct %an <%ae>%n%n'.$format_string, @ARGV);
open PIPE, '-|', @cmd
or die ("$ME: failed to run `". quoted_cmd (@cmd) ."': $!\n"
. "(Is your Git too old? Version 1.5.1 or later is required.)\n");
@ -145,6 +159,13 @@ sub quoted_cmd(@)
# Omit "Signed-off-by..." lines.
@line = grep !/^Signed-off-by: .*>$/, @line;
# Remove leading and trailing blank lines.
if (@line)
{
while ($line[0] =~ /^\s*$/) { shift @line; }
while ($line[$#line] =~ /^\s*$/) { pop @line; }
}
# If there were any lines
if (@line == 0)
{
@ -152,9 +173,17 @@ sub quoted_cmd(@)
}
else
{
# Remove leading and trailing blank lines.
while ($line[0] =~ /^\s*$/) { shift @line; }
while ($line[$#line] =~ /^\s*$/) { pop @line; }
if ($append_dot)
{
# If the first line of the message has enough room, then
if (length $line[0] < 72)
{
# append a dot if there is no other punctuation or blank
# at the end.
$line[0] =~ /[[:punct:]\s]$/
or $line[0] .= '.';
}
}
# Prefix each non-empty line with a TAB.
@line = map { length $_ ? "\t$_" : '' } @line;
@ -174,6 +203,7 @@ sub quoted_cmd(@)
}
# Local Variables:
# mode: perl
# indent-tabs-mode: nil
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "my $VERSION = '"

377
io.c
View File

@ -26,32 +26,20 @@
* 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
# include <sys/uio.h>
#endif
int
sys_read(tcp)
struct tcb *tcp;
sys_read(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
} else {
if (syserror(tcp))
tprintf("%#lx", tcp->u_arg[1]);
@ -63,11 +51,11 @@ struct tcb *tcp;
}
int
sys_write(tcp)
struct tcb *tcp;
sys_write(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
tprintf(", %lu", tcp->u_arg[2]);
}
@ -75,26 +63,24 @@ struct tcb *tcp;
}
#if HAVE_SYS_UIO_H
/*
* data_size limits the cumulative size of printed data.
* Example: recvmsg returing a short read.
*/
void
tprint_iov(tcp, len, addr)
struct tcb * tcp;
unsigned long len;
unsigned long addr;
tprint_iov_upto(struct tcb *tcp, unsigned long len, unsigned long addr, int decode_iov, unsigned long data_size)
{
#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1
#if 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))
(current_wordsize == 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)
(current_wordsize == 4 ? (uint64_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)
(current_wordsize == 4 ? (uint64_t) iov.iov32.len : iov.iov64.len)
#else
struct iovec iov;
#define sizeof_iov sizeof(iov)
@ -105,7 +91,7 @@ unsigned long addr;
int failed = 0;
if (!len) {
tprintf("[]");
tprints("[]");
return;
}
size = len * sizeof_iov;
@ -121,24 +107,31 @@ unsigned long addr;
} else {
abbrev_end = end;
}
tprintf("[");
tprints("[");
for (cur = addr; cur < end; cur += sizeof_iov) {
if (cur > addr)
tprintf(", ");
tprints(", ");
if (cur >= abbrev_end) {
tprintf("...");
tprints("...");
break;
}
if (umoven(tcp, cur, sizeof_iov, (char *) &iov) < 0) {
tprintf("?");
tprints("?");
failed = 1;
break;
}
tprintf("{");
printstr(tcp, (long) iov_iov_base, iov_iov_len);
tprints("{");
if (decode_iov) {
unsigned long len = iov_iov_len;
if (len > data_size)
len = data_size;
data_size -= len;
printstr(tcp, (long) iov_iov_base, len);
} else
tprintf("%#lx", (long) iov_iov_base);
tprintf(", %lu}", (unsigned long)iov_iov_len);
}
tprintf("]");
tprints("]");
if (failed)
tprintf(" %#lx", addr);
#undef sizeof_iov
@ -146,124 +139,43 @@ unsigned long addr;
#undef iov_iov_len
}
void
tprint_iov(struct tcb *tcp, unsigned long len, unsigned long addr, int decode_iov)
{
tprint_iov_upto(tcp, len, addr, decode_iov, (unsigned long) -1L);
}
int
sys_readv(tcp)
struct tcb *tcp;
sys_readv(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
} 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]);
tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1);
tprintf(", %lu", tcp->u_arg[2]);
}
return 0;
}
int
sys_writev(tcp)
struct tcb *tcp;
sys_writev(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 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
@ -276,130 +188,205 @@ struct tcb *tcp;
#endif
int
sys_pread(tcp)
struct tcb *tcp;
sys_pread(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
} else {
if (syserror(tcp))
tprintf("%#lx", tcp->u_arg[1]);
else
printstr(tcp, tcp->u_arg[1], tcp->u_rval);
ALIGN64 (tcp, PREAD_OFFSET_ARG); /* PowerPC alignment restriction */
tprintf(", %lu, %llu", tcp->u_arg[2],
*(unsigned long long *)&tcp->u_arg[PREAD_OFFSET_ARG]);
tprintf(", %lu, ", tcp->u_arg[2]);
printllval(tcp, "%llu", PREAD_OFFSET_ARG);
}
return 0;
}
int
sys_pwrite(tcp)
struct tcb *tcp;
sys_pwrite(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
ALIGN64 (tcp, PREAD_OFFSET_ARG); /* PowerPC alignment restriction */
tprintf(", %lu, %llu", tcp->u_arg[2],
*(unsigned long long *)&tcp->u_arg[PREAD_OFFSET_ARG]);
tprintf(", %lu, ", tcp->u_arg[2]);
printllval(tcp, "%llu", PREAD_OFFSET_ARG);
}
return 0;
}
#if HAVE_SYS_UIO_H
int
sys_preadv(struct tcb *tcp)
{
if (entering(tcp)) {
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
} 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], 1);
tprintf(", %lu, ", tcp->u_arg[2]);
printllval(tcp, "%llu", PREAD_OFFSET_ARG);
}
return 0;
}
int
sys_sendfile(tcp)
struct tcb *tcp;
sys_pwritev(struct tcb *tcp)
{
if (entering(tcp)) {
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1);
tprintf(", %lu, ", tcp->u_arg[2]);
printllval(tcp, "%llu", PREAD_OFFSET_ARG);
}
return 0;
}
#endif /* HAVE_SYS_UIO_H */
int
sys_sendfile(struct tcb *tcp)
{
if (entering(tcp)) {
off_t offset;
tprintf("%ld, %ld, ", tcp->u_arg[0], tcp->u_arg[1]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
printfd(tcp, tcp->u_arg[1]);
tprints(", ");
if (!tcp->u_arg[2])
tprintf("NULL");
tprints("NULL");
else if (umove(tcp, tcp->u_arg[2], &offset) < 0)
tprintf("%#lx", tcp->u_arg[2]);
else
#ifdef HAVE_LONG_LONG_OFF_T
tprintf("[%llu]", offset);
#else
tprintf("[%lu]", offset);
#endif
tprintf(", %lu", tcp->u_arg[3]);
}
return 0;
}
void
print_loff_t(struct tcb *tcp, long addr)
{
loff_t offset;
if (!addr)
tprints("NULL");
else if (umove(tcp, addr, &offset) < 0)
tprintf("%#lx", addr);
else
tprintf("[%llu]", (unsigned long long int) offset);
}
int
sys_sendfile64(tcp)
struct tcb *tcp;
sys_sendfile64(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);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
printfd(tcp, tcp->u_arg[1]);
tprints(", ");
print_loff_t(tcp, tcp->u_arg[2]);
tprintf(", %lu", tcp->u_arg[3]);
}
return 0;
}
#endif /* LINUX */
static const struct xlat splice_flags[] = {
#ifdef SPLICE_F_MOVE
{ SPLICE_F_MOVE, "SPLICE_F_MOVE" },
#endif
#ifdef SPLICE_F_NONBLOCK
{ SPLICE_F_NONBLOCK, "SPLICE_F_NONBLOCK" },
#endif
#ifdef SPLICE_F_MORE
{ SPLICE_F_MORE, "SPLICE_F_MORE" },
#endif
#ifdef SPLICE_F_GIFT
{ SPLICE_F_GIFT, "SPLICE_F_GIFT" },
#endif
{ 0, NULL },
};
#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
int
sys_pread64(tcp)
struct tcb *tcp;
sys_tee(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
} else {
ALIGN64 (tcp, 3);
if (syserror(tcp))
tprintf("%#lx", tcp->u_arg[1]);
else
printstr(tcp, tcp->u_arg[1], tcp->u_rval);
#ifdef MIPS_LINUXN32
tprintf(", %lu, %#llx", tcp->u_arg[2], tcp->ext_arg[3]);
#else
tprintf(", %lu, %#llx", tcp->u_arg[2],
LONG_LONG(tcp->u_arg[3], tcp->u_arg[4]));
#endif
/* int fd_in */
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
/* int fd_out */
printfd(tcp, tcp->u_arg[1]);
tprints(", ");
/* size_t len */
tprintf("%lu, ", tcp->u_arg[2]);
/* unsigned int flags */
printflags(splice_flags, tcp->u_arg[3], "SPLICE_F_???");
}
return 0;
}
int
sys_pwrite64(tcp)
struct tcb *tcp;
sys_splice(struct tcb *tcp)
{
if (entering(tcp)) {
ALIGN64 (tcp, 3);
tprintf("%ld, ", tcp->u_arg[0]);
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
#ifdef MIPS_LINUXN32
tprintf(", %lu, %#llx", tcp->u_arg[2], tcp->ext_arg[3]);
#else
tprintf(", %lu, %#llx", tcp->u_arg[2],
LONG_LONG(tcp->u_arg[3], tcp->u_arg[4]));
#endif
/* int fd_in */
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
/* loff_t *off_in */
print_loff_t(tcp, tcp->u_arg[1]);
tprints(", ");
/* int fd_out */
printfd(tcp, tcp->u_arg[2]);
tprints(", ");
/* loff_t *off_out */
print_loff_t(tcp, tcp->u_arg[3]);
tprints(", ");
/* size_t len */
tprintf("%lu, ", tcp->u_arg[4]);
/* unsigned int flags */
printflags(splice_flags, tcp->u_arg[5], "SPLICE_F_???");
}
return 0;
}
#endif
int
sys_ioctl(tcp)
struct tcb *tcp;
sys_vmsplice(struct tcb *tcp)
{
if (entering(tcp)) {
/* int fd */
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
/* const struct iovec *iov, unsigned long nr_segs */
tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1);
tprintf(", %lu, ", tcp->u_arg[2]);
/* unsigned int flags */
printflags(splice_flags, tcp->u_arg[3], "SPLICE_F_???");
}
return 0;
}
int
sys_ioctl(struct tcb *tcp)
{
const struct ioctlent *iop;
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
iop = ioctl_lookup(tcp->u_arg[1]);
if (iop) {
tprintf("%s", iop->symbol);
tprints(iop->symbol);
while ((iop = ioctl_next_match(iop)))
tprintf(" or %s", iop->symbol);
} else
@ -407,8 +394,8 @@ struct tcb *tcp;
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])))
int ret = ioctl_decode(tcp, tcp->u_arg[1], tcp->u_arg[2]);
if (!ret)
tprintf(", %#lx", tcp->u_arg[2]);
else
return ret - 1;

107
ioctl.c
View File

@ -26,135 +26,72 @@
* 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;
compare(const void *a, const void *b)
{
unsigned long code1 = ((struct ioctlent *) a)->code;
unsigned long code1 = (long) a;
unsigned long code2 = ((struct ioctlent *) b)->code;
return (code1 > code2) ? 1 : (code1 < code2) ? -1 : 0;
}
const struct ioctlent *
ioctl_lookup(code)
long code;
ioctl_lookup(long code)
{
struct ioctlent *iop, ioent;
struct ioctlent *iop;
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) {
code &= (_IOC_NRMASK<<_IOC_NRSHIFT) | (_IOC_TYPEMASK<<_IOC_TYPESHIFT);
iop = bsearch((void*)code, ioctlent,
nioctlents, sizeof(ioctlent[0]), compare);
while (iop > ioctlent) {
iop--;
if (iop->code != code) {
iop++;
break;
}
}
return iop;
}
const struct ioctlent *
ioctl_next_match(iop)
const struct ioctlent *iop;
ioctl_next_match(const struct ioctlent *iop)
{
long code;
code = (iop++)->code;
code = iop->code;
iop++;
if (iop < ioctlent + nioctlents && iop->code == code)
return iop;
return NULL;
}
int
ioctl_decode(tcp, code, arg)
struct tcb *tcp;
long code, arg;
ioctl_decode(struct tcb *tcp, long code, long 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 0x03:
case 0x12:
return block_ioctl(tcp, code, arg);
case 0x22:
return scsi_ioctl(tcp, code, arg);
#endif
case 'L':
return loop_ioctl(tcp, code, arg);
case 'M':
return mtd_ioctl(tcp, code, arg);
default:
break;
}

View File

@ -24,20 +24,16 @@
* 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>
# include <stdlib.h>
#endif
struct ioctlent {
char *doth;
char *symbol;
const char *doth;
const char *symbol;
unsigned long code;
};
@ -46,9 +42,7 @@ struct ioctlent {
int nioctlents = sizeof ioctlent / sizeof ioctlent[0];
int
compare(a, b)
const void *a;
const void *b;
compare(const void *a, const void *b)
{
unsigned long code1 = ((struct ioctlent *) a)->code;
unsigned long code2 = ((struct ioctlent *) b)->code;
@ -56,9 +50,7 @@ const void *b;
}
int
main(argc, argv)
int argc;
char *argv[];
main(int argc, const char *argv[])
{
int i;

212
ipc.c
View File

@ -26,18 +26,12 @@
* 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
#ifdef HAVE_MQUEUE_H
# include <mqueue.h>
#endif
#include <fcntl.h>
#include <sys/ipc.h>
#include <sys/sem.h>
@ -63,7 +57,7 @@
#define SEM_INFO 19
#endif
#if defined LINUX && !defined IPC_64
#if !defined IPC_64
# define IPC_64 0x100
#endif
@ -73,11 +67,9 @@ 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 },
};
@ -85,11 +77,9 @@ 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" },
@ -104,11 +94,9 @@ 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
@ -135,9 +123,7 @@ static const struct xlat shm_resource_flags[] = {
};
static const struct xlat shm_flags[] = {
#ifdef LINUX
{ SHM_REMAP, "SHM_REMAP" },
#endif /* LINUX */
{ SHM_RDONLY, "SHM_RDONLY" },
{ SHM_RND, "SHM_RND" },
{ 0, NULL },
@ -145,9 +131,7 @@ static const struct xlat shm_flags[] = {
static const struct xlat msg_flags[] = {
{ MSG_NOERROR, "MSG_NOERROR" },
#ifdef LINUX
{ MSG_EXCEPT, "MSG_EXCEPT" },
#endif /* LINUX */
{ IPC_NOWAIT, "IPC_NOWAIT" },
{ 0, NULL },
};
@ -158,17 +142,16 @@ static const struct xlat semop_flags[] = {
{ 0, NULL },
};
int sys_msgget(tcp)
struct tcb *tcp;
int sys_msgget(struct tcb *tcp)
{
if (entering(tcp)) {
if (tcp->u_arg[0])
tprintf("%#lx", tcp->u_arg[0]);
else
tprintf("IPC_PRIVATE");
tprintf(", ");
tprints("IPC_PRIVATE");
tprints(", ");
if (printflags(resource_flags, tcp->u_arg[1] & ~0777, NULL) != 0)
tprintf("|");
tprints("|");
tprintf("%#lo", tcp->u_arg[1] & 0777);
}
return 0;
@ -176,32 +159,28 @@ struct tcb *tcp;
#ifdef IPC_64
# define PRINTCTL(flagset, arg, dflt) \
if ((arg) & IPC_64) tprintf("IPC_64|"); \
if ((arg) & IPC_64) tprints("IPC_64|"); \
printxval((flagset), (arg) &~ IPC_64, dflt)
#else
# define PRINTCTL printxval
#endif
static int
indirect_ipccall(tcp)
struct tcb *tcp;
indirect_ipccall(struct tcb *tcp)
{
#ifdef LINUX
#ifdef X86_64
return current_personality > 0;
return current_personality == 1;
#endif
#if defined IA64
return tcp->scno < 1024; /* ia32 emulation syscalls are low */
#endif
#if !defined MIPS && !defined HPPA
return 1;
#endif
#endif /* LINUX */
#if defined(ALPHA) || defined(MIPS) || defined(HPPA) || defined(__ARM_EABI__)
return 0;
#endif
return 1;
}
int sys_msgctl(tcp)
struct tcb *tcp;
int sys_msgctl(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%lu, ", tcp->u_arg[0]);
@ -212,7 +191,8 @@ struct tcb *tcp;
}
static void
tprint_msgsnd(struct tcb *tcp, long addr, unsigned long count)
tprint_msgsnd(struct tcb *tcp, long addr, unsigned long count,
unsigned long flags)
{
long mtype;
@ -221,56 +201,64 @@ tprint_msgsnd(struct tcb *tcp, long addr, unsigned long count)
} else {
tprintf("{%lu, ", mtype);
printstr(tcp, addr + sizeof(mtype), count);
tprintf("}");
tprints("}");
}
tprintf(", %lu, ", count);
printflags(msg_flags, tcp->u_arg[3], "MSG_???");
printflags(msg_flags, flags, "MSG_???");
}
int sys_msgsnd(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%lu, ", tcp->u_arg[0]);
tprintf("%d, ", (int) tcp->u_arg[0]);
if (indirect_ipccall(tcp)) {
tprint_msgsnd(tcp, tcp->u_arg[3], tcp->u_arg[1]);
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]);
tprint_msgsnd(tcp, tcp->u_arg[1], tcp->u_arg[2],
tcp->u_arg[3]);
}
}
return 0;
}
int sys_msgrcv(tcp)
struct tcb *tcp;
static void
tprint_msgrcv(struct tcb *tcp, long addr, unsigned long count, long msgtyp)
{
long mtype;
if (entering(tcp)) {
tprintf("%lu, ", tcp->u_arg[0]);
if (syserror(tcp) || umove(tcp, addr, &mtype) < 0) {
tprintf("%#lx", addr);
} else {
tprintf("{%lu, ", mtype);
printstr(tcp, addr + sizeof(mtype), count);
tprints("}");
}
tprintf(", %lu, %ld, ", count, msgtyp);
}
int sys_msgrcv(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%d, ", (int) tcp->u_arg[0]);
} else {
tprintf("%lu", tcp->u_arg[0]);
if (indirect_ipccall(tcp)) {
struct ipc_wrapper {
struct msgbuf *msgp;
long msgtyp;
} tmp;
umove(tcp, tcp->u_arg[3], &tmp);
umove(tcp, (long) tmp.msgp, &mtype);
tprintf(", {%lu, ", mtype);
printstr(tcp, (long) (tmp.msgp) + sizeof(long),
tcp->u_arg[1]);
tprintf("}, %lu", tcp->u_arg[1]);
tprintf(", %ld", tmp.msgtyp);
tprintf(", ");
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 {
umove(tcp, tcp->u_arg[1], &mtype);
tprintf("{%lu, ", mtype);
printstr(tcp, tcp->u_arg[1] + sizeof(long),
tcp->u_arg[2]);
tprintf("}, %lu", tcp->u_arg[2]);
tprintf(", %ld", tcp->u_arg[3]);
tprintf(", ");
tprint_msgrcv(tcp, tcp->u_arg[1],
tcp->u_arg[2], tcp->u_arg[3]);
printflags(msg_flags, tcp->u_arg[4], "MSG_???");
}
}
@ -292,13 +280,13 @@ tprint_sembuf(struct tcb *tcp, long addr, unsigned long count)
return;
}
for(i = 0; i < max_count; ++i) {
for (i = 0; i < max_count; ++i) {
struct sembuf sb;
if (i)
tprintf(", ");
tprints(", ");
if (umove(tcp, addr + i * sizeof(struct sembuf), &sb) < 0) {
if (i) {
tprintf("{???}");
tprints("{???}");
break;
} else {
tprintf("%#lx, %lu", addr, count);
@ -306,15 +294,15 @@ tprint_sembuf(struct tcb *tcp, long addr, unsigned long count)
}
} else {
if (!i)
tprintf("{");
tprints("{");
tprintf("{%u, %d, ", sb.sem_num, sb.sem_op);
printflags(semop_flags, sb.sem_flg, "SEM_???");
tprintf("}");
tprints("}");
}
}
if (i < max_count || max_count < count)
tprintf(", ...");
tprints(", ...");
tprintf("}, %lu", count);
}
@ -332,44 +320,44 @@ int sys_semop(struct tcb *tcp)
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(", ");
tprints(", ");
#if defined(S390)
printtv(tcp, tcp->u_arg[2]);
#else
printtv(tcp, tcp->u_arg[5]);
#endif
} else {
tprint_sembuf(tcp, tcp->u_arg[1], tcp->u_arg[2]);
tprintf(", ");
tprints(", ");
printtv(tcp, tcp->u_arg[3]);
}
}
return 0;
}
#endif
int sys_semget(tcp)
struct tcb *tcp;
int sys_semget(struct tcb *tcp)
{
if (entering(tcp)) {
if (tcp->u_arg[0])
tprintf("%#lx", tcp->u_arg[0]);
else
tprintf("IPC_PRIVATE");
tprints("IPC_PRIVATE");
tprintf(", %lu", tcp->u_arg[1]);
tprintf(", ");
tprints(", ");
if (printflags(resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0)
tprintf("|");
tprints("|");
tprintf("%#lo", tcp->u_arg[2] & 0777);
}
return 0;
}
int sys_semctl(tcp)
struct tcb *tcp;
int sys_semctl(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%lu", tcp->u_arg[0]);
@ -380,25 +368,23 @@ struct tcb *tcp;
return 0;
}
int sys_shmget(tcp)
struct tcb *tcp;
int sys_shmget(struct tcb *tcp)
{
if (entering(tcp)) {
if (tcp->u_arg[0])
tprintf("%#lx", tcp->u_arg[0]);
else
tprintf("IPC_PRIVATE");
tprints("IPC_PRIVATE");
tprintf(", %lu", tcp->u_arg[1]);
tprintf(", ");
tprints(", ");
if (printflags(shm_resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0)
tprintf("|");
tprints("|");
tprintf("%#lo", tcp->u_arg[2] & 0777);
}
return 0;
}
int sys_shmctl(tcp)
struct tcb *tcp;
int sys_shmctl(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%lu, ", tcp->u_arg[0]);
@ -412,39 +398,33 @@ struct tcb *tcp;
return 0;
}
int sys_shmat(tcp)
struct tcb *tcp;
int sys_shmat(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(", ");
tprints(", ");
printflags(shm_flags, tcp->u_arg[1], "SHM_???");
} else {
tprintf(", %#lx", tcp->u_arg[1]);
tprintf(", ");
tprints(", ");
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 */
if (indirect_ipccall(tcp)) {
unsigned long raddr;
if (umove(tcp, tcp->u_arg[2], &raddr) < 0)
return RVAL_NONE;
tcp->u_rval = raddr;
}
return RVAL_HEX;
}
return 0;
}
int sys_shmdt(tcp)
struct tcb *tcp;
int sys_shmdt(struct tcb *tcp)
{
if (entering(tcp)) {
if (indirect_ipccall(tcp)) {
@ -456,15 +436,12 @@ struct tcb *tcp;
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(", ");
tprints(", ");
/* flags */
tprint_open_modes(tcp->u_arg[1]);
if (tcp->u_arg[1] & O_CREAT) {
@ -475,10 +452,11 @@ sys_mq_open(struct tcb *tcp)
/* mode */
tprintf(", %#lo, ", tcp->u_arg[2]);
if (umove(tcp, tcp->u_arg[3], &attr) < 0)
tprintf("{ ??? }");
tprints("{ ??? }");
else
tprintf("{mq_maxmsg=%ld, mq_msgsize=%ld}",
attr.mq_maxmsg, attr.mq_msgsize);
(long) attr.mq_maxmsg,
(long) attr.mq_msgsize);
# endif
}
}
@ -524,20 +502,21 @@ static void
printmqattr(struct tcb *tcp, long addr)
{
if (addr == 0)
tprintf("NULL");
tprints("NULL");
else {
# ifndef HAVE_MQUEUE_H
tprintf("%#lx", addr);
# else
struct mq_attr attr;
if (umove(tcp, addr, &attr) < 0) {
tprintf("{...}");
tprints("{...}");
return;
}
tprintf("{mq_flags=");
tprints("{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);
(long) attr.mq_maxmsg, (long) attr.mq_msgsize,
(long) attr.mq_curmsgs);
# endif
}
}
@ -548,9 +527,14 @@ sys_mq_getsetattr(struct tcb *tcp)
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
printmqattr(tcp, tcp->u_arg[1]);
tprintf(", ");
tprints(", ");
} else
printmqattr(tcp, tcp->u_arg[2]);
return 0;
}
#endif
int
sys_ipc(struct tcb *tcp)
{
return printargs(tcp);
}

View File

@ -1,3 +0,0 @@
Makefile
ioctldefs.h
ioctls.h

View File

@ -1 +0,0 @@
Makefile

View File

@ -1,852 +0,0 @@
{"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},

73
linux/alpha/ioctlent.h.in Normal file
View File

@ -0,0 +1,73 @@
{"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},
{"asm/ioctls.h", "FIOCLEX", 0x6601},
{"asm/ioctls.h", "FIONCLEX", 0x6602},
{"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/sockios.h", "SIOCATMARK", 0x7307},
{"asm/sockios.h", "SIOCSPGRP", 0x7308},
{"asm/sockios.h", "SIOCGPGRP", 0x7309},
{"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},
{"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},

View File

@ -24,8 +24,6 @@
* 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 */
@ -52,7 +50,7 @@
{ 4, 0, printargs, "osf_mount" }, /* 21 */
{ 2, 0, sys_umount2, "umount" }, /* 22 */
{ 1, 0, sys_setuid, "setuid" }, /* 23 */
{ 0, 0, sys_getuid, "getxuid" }, /* 24 */
{ 0, NF, 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 */
@ -75,13 +73,13 @@
{ 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 */
{ 1, NF, sys_getgid, "getxgid" }, /* 47 */
{ 2, TS, sys_sigprocmask, "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 */
{ 5, 0, NULL, NULL }, /* 53 */
{ 3, TD, sys_ioctl, "ioctl" }, /* 54 */
{ 5, 0, printargs, "osf_reboot" }, /* 55, not implemented */
{ 5, 0, printargs, "osf_revoke" }, /* 56, not implemented */
@ -99,7 +97,7 @@
{ 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 */
{ 6, TD, 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 */
@ -131,7 +129,7 @@
{ 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 */
{ 0, TS, sys_sigreturn, "sigreturn" }, /* 103 */
{ 3, TN, sys_bind, "bind" }, /* 104 */
{ 5, TN, sys_setsockopt, "setsockopt" }, /* 105 */
{ 2, TN, sys_listen, "listen" }, /* 106 */
@ -147,7 +145,7 @@
{ 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 */
{ 5, 0, NULL, NULL }, /* 119 */
{ 3, TD, sys_readv, "readv" }, /* 120 */
{ 3, TD, sys_writev, "writev" }, /* 121 */
{ 2, 0, sys_osf_settimeofday, "osf_settimeofday" }, /* 122 */
@ -179,54 +177,54 @@
{ 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, NULL, NULL }, /* 151 */
{ 5, 0, NULL, NULL }, /* 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 */
{ 5, 0, NULL, NULL }, /* 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, NULL, NULL }, /* 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, NULL, NULL }, /* 167 */
{ 5, 0, NULL, NULL }, /* 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, NULL, NULL }, /* 170 */
{ 5, 0, NULL, NULL }, /* 171 */
{ 5, 0, NULL, NULL }, /* 172 */
{ 5, 0, NULL, NULL }, /* 173 */
{ 5, 0, NULL, NULL }, /* 174 */
{ 5, 0, NULL, NULL }, /* 175 */
{ 5, 0, NULL, NULL }, /* 176 */
{ 5, 0, NULL, NULL }, /* 177 */
{ 5, 0, NULL, NULL }, /* 178 */
{ 5, 0, NULL, NULL }, /* 179 */
{ 5, 0, NULL, NULL }, /* 180 */
{ 5, 0, printargs, "osf_alt_plock" }, /* 181, not implemented */
{ 5, 0, printargs, "SYS_182" }, /* 182 */
{ 5, 0, printargs, "SYS_183" }, /* 183 */
{ 5, 0, NULL, NULL }, /* 182 */
{ 5, 0, NULL, NULL }, /* 183 */
{ 5, 0, printargs, "osf_getmnt" }, /* 184, not implemented */
{ 5, 0, printargs, "SYS_185" }, /* 185 */
{ 5, 0, printargs, "SYS_186" }, /* 186 */
{ 5, 0, NULL, NULL }, /* 185 */
{ 5, 0, NULL, NULL }, /* 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 */
{ 5, 0, NULL, NULL }, /* 189 */
{ 5, 0, NULL, NULL }, /* 190 */
{ 5, 0, NULL, NULL }, /* 191 */
{ 5, 0, NULL, NULL }, /* 192 */
{ 5, 0, NULL, NULL }, /* 193 */
{ 5, 0, NULL, NULL }, /* 194 */
{ 5, 0, NULL, NULL }, /* 195 */
{ 5, 0, NULL, NULL }, /* 196 */
{ 5, 0, NULL, NULL }, /* 197 */
{ 5, 0, NULL, NULL }, /* 198 */
{ 4, 0, printargs, "osf_swapon" }, /* 199 */
{ 4, TI, sys_msgctl, "msgctl" }, /* 200 */
{ 4, TI, sys_msgget, "msgget" }, /* 201 */
@ -249,18 +247,18 @@
{ 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, NULL, NULL }, /* 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 */
{ 5, 0, NULL, NULL }, /* 224 */
{ 5, 0, NULL, NULL }, /* 225 */
{ 5, 0, NULL, NULL }, /* 226 */
{ 5, 0, NULL, NULL }, /* 227 */
{ 5, 0, NULL, NULL }, /* 228 */
{ 5, 0, NULL, NULL }, /* 229 */
{ 5, 0, NULL, NULL }, /* 230 */
{ 5, 0, NULL, NULL }, /* 231 */
{ 5, 0, NULL, NULL }, /* 232 */
{ 1, 0, sys_getpgid, "getpgid" }, /* 233 */
{ 1, 0, sys_getsid, "getsid" }, /* 234 */
{ 5, 0, sys_sigaltstack, "sigaltstack" }, /* 235 */
@ -277,7 +275,7 @@
{ 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, NULL, NULL }, /* 249 */
{ 5, 0, printargs, "osf_uswitch" }, /* 250, not implemented */
{ 2, 0, printargs, "osf_usleep_thread" }, /* 251 */
{ 5, 0, printargs, "osf_audcntl" }, /* 252, not implemented */
@ -290,56 +288,56 @@
{ 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 */
{ 5, 0, NULL, NULL }, /* 262 */
{ 5, 0, NULL, NULL }, /* 263 */
{ 5, 0, NULL, NULL }, /* 264 */
{ 5, 0, NULL, NULL }, /* 265 */
{ 5, 0, NULL, NULL }, /* 266 */
{ 5, 0, NULL, NULL }, /* 267 */
{ 5, 0, NULL, NULL }, /* 268 */
{ 5, 0, NULL, NULL }, /* 269 */
{ 5, 0, NULL, NULL }, /* 270 */
{ 5, 0, NULL, NULL }, /* 271 */
{ 5, 0, NULL, NULL }, /* 272 */
{ 5, 0, NULL, NULL }, /* 273 */
{ 5, 0, NULL, NULL }, /* 274 */
{ 5, 0, NULL, NULL }, /* 275 */
{ 5, 0, NULL, NULL }, /* 276 */
{ 5, 0, NULL, NULL }, /* 277 */
{ 5, 0, NULL, NULL }, /* 278 */
{ 5, 0, NULL, NULL }, /* 279 */
{ 5, 0, NULL, NULL }, /* 280 */
{ 5, 0, NULL, NULL }, /* 281 */
{ 5, 0, NULL, NULL }, /* 282 */
{ 5, 0, NULL, NULL }, /* 283 */
{ 5, 0, NULL, NULL }, /* 284 */
{ 5, 0, NULL, NULL }, /* 285 */
{ 5, 0, NULL, NULL }, /* 286 */
{ 5, 0, NULL, NULL }, /* 287 */
{ 5, 0, NULL, NULL }, /* 288 */
{ 5, 0, NULL, NULL }, /* 289 */
{ 5, 0, NULL, NULL }, /* 290 */
{ 5, 0, NULL, NULL }, /* 291 */
{ 5, 0, NULL, NULL }, /* 292 */
{ 5, 0, NULL, NULL }, /* 293 */
{ 5, 0, NULL, NULL }, /* 294 */
{ 5, 0, NULL, NULL }, /* 295 */
{ 5, 0, NULL, NULL }, /* 296 */
{ 5, 0, NULL, NULL }, /* 297 */
{ 5, 0, NULL, NULL }, /* 298 */
{ 5, 0, NULL, NULL }, /* 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 */
{ 1, TF, 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 */
{ 4, 0, sys_reboot, "reboot" }, /* 311 */
{ 5, TP, sys_clone, "clone" }, /* 312 */
{ 1, 0, sys_uselib, "uselib" }, /* 313 */
{ 2, 0, sys_mlock, "mlock" }, /* 314 */
@ -350,11 +348,11 @@
{ 1, 0, sys_sysctl, "sysctl" }, /* 319 */
{ 0, 0, sys_idle, "idle" }, /* 320 */
{ 1, 0, sys_umount, "oldumount" }, /* 321 */
{ 1, 0, sys_swapon, "swapon" }, /* 322 */
{ 2, TF, 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 */
{ 1, NF, sys_setfsuid, "setfsuid" }, /* 325 */
{ 1, NF, sys_setfsgid, "setfsgid" }, /* 326 */
{ 2, 0, sys_ustat, "ustat" }, /* 327 */
{ 2, TF, sys_statfs, "statfs" }, /* 328 */
{ 2, TD, sys_fstatfs, "fstatfs" }, /* 329 */
@ -370,7 +368,7 @@
{ 1, 0, sys_uname, "uname" }, /* 339 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 340 */
{ 5, 0, sys_mremap, "mremap" }, /* 341 */
{ 5, 0, printargs, "nfsservctl" }, /* 342 */
{ 5, 0, sys_nfsservctl, "nfsservctl" }, /* 342 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 343 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 344 */
{ 5, 0, printargs, "pciconfig_read" }, /* 345 */
@ -379,7 +377,7 @@
{ 5, 0, sys_prctl, "prctl" }, /* 348 */
{ 5, TD, sys_pread, "pread" }, /* 349 */
{ 5, TD, sys_pwrite, "pwrite" }, /* 350 */
{ 1, TS, printargs, "rt_sigreturn" }, /* 351 */
{ 0, TS, sys_rt_sigreturn, "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 */
@ -406,42 +404,42 @@
{ 3, 0, sys_mincore, "mincore" }, /* 375 */
{ 3, 0, printargs, "pciconfig_iobase" }, /* 376 */
{ 3, TD, sys_getdents64, "getdents64" }, /* 377 */
{ 0, 0, printargs, "gettid" }, /* 378 */
{ 0, 0, sys_gettid, "gettid" }, /* 378 */
{ 4, TD, sys_readahead, "readahead" }, /* 379 */
{ 5, 0, printargs, "SYS_380" }, /* 380 */
{ 5, 0, NULL, NULL }, /* 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 */
{ 4, TD, sys_fgetxattr, "fgetxattr" }, /* 387 */
{ 3, TF, sys_listxattr, "listxattr" }, /* 388 */
{ 3, TF, sys_listxattr, "llistxattr" }, /* 389 */
{ 3, 0, sys_flistxattr, "flistxattr" }, /* 390 */
{ 3, TD, 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 */
{ 5, 0, sys_tuxcall, "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 */
{ 5, 0, NULL, NULL }, /* 403 */
{ 5, 0, NULL, NULL }, /* 404 */
{ 1, TP, sys_exit, "exit_group" }, /* 405 */
{ 4, 0, printargs, "lookup_dcookie" }, /* 406 */
{ 1, 0, sys_epoll_create, "epoll_create" }, /* 407 */
{ 4, 0, sys_lookup_dcookie, "lookup_dcookie" }, /* 406 */
{ 1, TD, 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 */
{ 1, 0, sys_set_tid_address, "set_tid_address" }, /* 411 */
{ 0, 0, sys_restart_syscall, "restart_syscall" }, /* 412 */
{ 4, 0, printargs, "fadvise" }, /* 413 */
{ 4, TD, 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 */
@ -456,7 +454,7 @@
{ 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, sys_vserver, "vserver" }, /* 428 ??? */
{ 5, 0, printargs, "mbind" }, /* 429 ??? */
{ 5, 0, printargs, "get_mempolicy" }, /* 430 ??? */
{ 5, 0, printargs, "set_mempolicy" }, /* 431 ??? */
@ -467,11 +465,68 @@
{ 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 */
{ 5, 0, sys_add_key, "add_key" }, /* 439 */
{ 4, 0, sys_request_key, "request_key" }, /* 440 */
{ 5, 0, sys_keyctl, "keyctl" }, /* 441 */
{ 3, 0, sys_ioprio_set, "ioprio_set" }, /* 442 */
{ 2, 0, sys_ioprio_get, "ioprio_get" }, /* 443 */
{ 0, TD, sys_inotify_init, "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 */
{ 4, 0, sys_kexec_load, "kexec_load" }, /* 448 */
{ 4, 0, sys_migrate_pages, "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|TF, 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, sys_set_robust_list, "set_robust_list" }, /* 466 */
{ 3, 0, sys_get_robust_list, "get_robust_list" }, /* 467 */
{ 6, TD, sys_splice, "splice" }, /* 468 */
{ 4, TD, sys_sync_file_range, "sync_file_range" }, /* 469 */
{ 4, TD, sys_tee, "tee" }, /* 470 */
{ 4, TD, sys_vmsplice, "vmsplice" }, /* 471 */
{ 6, 0, sys_move_pages, "move_pages" }, /* 472 */
{ 3, 0, sys_getcpu, "getcpu" }, /* 473 */
{ 6, 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, TD, 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, TD, 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, sys_preadv, "preadv" }, /* 490 */
{ 5, TD, sys_pwritev, "pwritev" }, /* 491 */
{ 4, TP|TS, sys_rt_tgsigqueueinfo, "rt_tgsigqueueinfo" }, /* 492 */
{ 5, TD, sys_perf_event_open, "perf_event_open" }, /* 493 */
{ 2, TD, sys_fanotify_init, "fanotify_init" }, /* 494 */
{ 5, TD|TF, sys_fanotify_mark, "fanotify_mark" }, /* 495 */
{ 4, 0, sys_prlimit64, "prlimit64" }, /* 496 */
{ 5, TD|TF, sys_name_to_handle_at, "name_to_handle_at" }, /* 497 */
{ 3, TD, sys_open_by_handle_at, "open_by_handle_at" }, /* 498 */
{ 2, 0, sys_clock_adjtime, "clock_adjtime" }, /* 499 */
{ 1, TD, sys_syncfs, "syncfs" }, /* 500 */
{ 2, TD, sys_setns, "setns" }, /* 501 */
{ 4, TN, sys_accept4, "accept4" }, /* 502 */
{ 4, TN, sys_sendmmsg, "sendmmsg" }, /* 503 */

1
linux/arm/ioctlent.h.in Normal file
View File

@ -0,0 +1 @@
#include "../i386/ioctlent.h.in"

View File

@ -1,2 +1,2 @@
/* Our second set comes from the i386 files. */
#include "../ioctlent.h"
#include "linux/ioctlent.h"

View File

@ -24,8 +24,6 @@
* 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 */
@ -52,7 +50,7 @@
{ 5, TF, sys_mount, "mount" }, /* 21 */
{ 1, TF, sys_umount, "oldumount" }, /* 22 */
{ 1, 0, sys_setuid, "setuid" }, /* 23 */
{ 0, 0, sys_getuid, "getuid" }, /* 24 */
{ 0, NF, sys_getuid, "getuid" }, /* 24 */
{ 1, 0, sys_stime, "stime" }, /* 25 */
{ 4, 0, sys_ptrace, "ptrace" }, /* 26 */
{ 1, 0, sys_alarm, "alarm" }, /* 27 */
@ -75,10 +73,10 @@
{ 0, 0, sys_prof, "prof" }, /* 44 */
{ 1, 0, sys_brk, "brk" }, /* 45 */
{ 1, 0, sys_setgid, "setgid" }, /* 46 */
{ 0, 0, sys_getgid, "getgid" }, /* 47 */
{ 0, NF, sys_getgid, "getgid" }, /* 47 */
{ 3, TS, sys_signal, "signal" }, /* 48 */
{ 0, 0, sys_geteuid, "geteuid" }, /* 49 */
{ 0, 0, sys_getegid, "getegid" }, /* 50 */
{ 0, NF, sys_geteuid, "geteuid" }, /* 49 */
{ 0, NF, sys_getegid, "getegid" }, /* 50 */
{ 1, TF, sys_acct, "acct" }, /* 51 */
{ 2, TF, sys_umount2, "umount" }, /* 52 */
{ 0, 0, sys_lock, "lock" }, /* 53 */
@ -96,8 +94,8 @@
{ 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 */
{ 0, TS, sys_siggetmask, "sgetmask" }, /* 68 */
{ 1, TS, sys_sigsetmask, "ssetmask" }, /* 69 */
{ 2, 0, sys_setreuid, "setreuid" }, /* 70 */
{ 2, 0, sys_setregid, "setregid" }, /* 71 */
{ 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
@ -115,10 +113,10 @@
{ 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 */
{ 2, TF, sys_swapon, "swapon" }, /* 87 */
{ 4, 0, sys_reboot, "reboot" }, /* 88 */
{ 3, 0, sys_readdir, "readdir" }, /* 89 */
{ 6, 0, sys_old_mmap, "old_mmap" }, /* 90 */
{ 6, TD, sys_old_mmap, "old_mmap" }, /* 90 */
{ 2, 0, sys_munmap, "munmap" }, /* 91 */
{ 2, TF, sys_truncate, "truncate" }, /* 92 */
{ 2, 0, sys_ftruncate, "ftruncate" }, /* 93 */
@ -143,11 +141,11 @@
{ 0, 0, sys_idle, "idle" }, /* 112 */
{ 5, 0, printargs, "syscall" }, /* 113 */
{ 4, TP, sys_wait4, "wait4" }, /* 114 */
{ 1, 0, sys_swapoff, "swapoff" }, /* 115 */
{ 1, TF, sys_swapoff, "swapoff" }, /* 115 */
{ 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
{ 6, 0, sys_ipc, "ipc" }, /* 117 */
{ 6, TI, sys_ipc, "ipc" }, /* 117 */
{ 1, 0, sys_fsync, "fsync" }, /* 118 */
{ 1, TS, sys_sigreturn, "sigreturn" }, /* 119 */
{ 0, TS, sys_sigreturn, "sigreturn" }, /* 119 */
{ 5, TP, sys_clone, "clone" }, /* 120 */
{ 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
{ 1, 0, sys_uname, "uname" }, /* 122 */
@ -166,8 +164,8 @@
{ 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 */
{ 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */
{ 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */
{ 5, 0, sys_llseek, "_llseek" }, /* 140 */
{ 3, 0, sys_getdents, "getdents" }, /* 141 */
{ 5, 0, sys_select, "select" }, /* 142 */
@ -180,7 +178,7 @@
{ 1, 0, sys_sysctl, "_sysctl" }, /* 149 */
{ 2, 0, sys_mlock, "mlock" }, /* 150 */
{ 2, 0, sys_munlock, "munlock" }, /* 151 */
{ 2, 0, sys_mlockall, "mlockall" }, /* 152 */
{ 1, 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 */
@ -191,26 +189,26 @@
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
{ 4, 0, sys_mremap, "mremap" }, /* 163 */
{ 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_vm86, "vm86" }, /* 166 */
{ 5, 0, sys_query_module, "query_module" }, /* 167 */
{ 3, 0, sys_poll, "poll" }, /* 168 */
{ 3, 0, printargs, "nfsservctl" }, /* 169 */
{ 3, 0, sys_nfsservctl, "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 */
{ 0, TS, sys_rt_sigreturn, "rt_sigreturn" }, /* 173 */
{ 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 174 */
{ 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 175 */
{ 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 176 */
{ 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"}, /* 177 */
{ 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"}, /* 178 */
{ 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 179 */
{ 5, TF, sys_pread, "pread" }, /* 180 */
{ 5, TF, sys_pwrite, "pwrite" }, /* 181 */
{ 6, TF, sys_pread, "pread" }, /* 180 */
{ 6, TF, sys_pwrite, "pwrite" }, /* 181 */
{ 3, TF, sys_chown, "chown" }, /* 182 */
{ 2, TF, sys_getcwd, "getcwd" }, /* 183 */
{ 2, 0, sys_capget, "capget" }, /* 184 */
@ -221,18 +219,18 @@
{ 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 */
{ 6, TD, sys_mmap, "mmap2" }, /* 192 */
{ 4, TF, sys_truncate64, "truncate64" }, /* 193 */
{ 4, TF, sys_ftruncate64, "ftruncate64" }, /* 194 */
{ 2, TF, sys_stat64, "stat64" }, /* 195 */
{ 2, TF, sys_lstat64, "lstat64" }, /* 196 */
{ 2, TF, sys_fstat64, "fstat64" }, /* 197 */
{ 3, TF, sys_chown, "lchown32" }, /* 198 */
{ 0, 0, sys_getuid, "getuid32" }, /* 199 */
{ 0, NF, sys_getuid, "getuid32" }, /* 199 */
{ 0, 0, sys_getgid, "getgid32" }, /* 200 */
{ 0, 0, sys_geteuid, "geteuid32" }, /* 201 */
{ 0, 0, sys_geteuid, "getegid32" }, /* 202 */
{ 0, NF, sys_getgid, "getgid32" }, /* 200 */
{ 0, NF, sys_geteuid, "geteuid32" }, /* 201 */
{ 0, NF, sys_geteuid, "getegid32" }, /* 202 */
{ 2, 0, sys_setreuid, "setreuid32" }, /* 203 */
{ 2, 0, sys_setregid, "setregid32" }, /* 204 */
{ 2, 0, sys_getgroups32, "getgroups32" }, /* 205 */
@ -245,48 +243,48 @@
{ 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 */
{ 1, NF, sys_setfsuid, "setfsuid32" }, /* 215 */
{ 1, NF, 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_mincore, "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, 0, NULL, NULL }, /* 222 */
{ 5, 0, NULL, NULL }, /* 223 */
{ 0, 0, sys_gettid, "gettid" }, /* 224 */
{ 5, 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 */
{ 4, TD, sys_fgetxattr, "fgetxattr" }, /* 231 */
{ 3, TF, sys_listxattr, "listxattr" }, /* 232 */
{ 3, TF, sys_listxattr, "llistxattr" }, /* 233 */
{ 3, 0, sys_flistxattr, "flistxattr" }, /* 234 */
{ 3, TD, sys_flistxattr, "flistxattr" }, /* 234 */
{ 2, TF, sys_removexattr, "removexattr" }, /* 235 */
{ 2, TF, sys_removexattr, "lremovexattr" }, /* 236 */
{ 2, 0, sys_fremovexattr, "fremovexattr" }, /* 237 */
{ 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 */
{ 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 */
{ 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 */
{ 4, 0, printargs, "lookup_dcookie"}, /* 249 */
{ 1, 0, printargs, "epoll_create" }, /* 250 */
{ 4, 0, printargs, "epoll_ctl" }, /* 251 */
{ 4, 0, printargs, "epoll_wait" }, /* 252 */
{ 4, 0, sys_lookup_dcookie, "lookup_dcookie"}, /* 249 */
{ 1, TD, sys_epoll_create, "epoll_create" }, /* 250 */
{ 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 251 */
{ 4, TD, sys_epoll_wait, "epoll_wait" }, /* 252 */
{ 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 253 */
{ 5, 0, printargs, "SYS_254" }, /* 254 */
{ 5, 0, printargs, "SYS_255" }, /* 255 */
{ 1, 0, printargs, "set_tid_address"}, /* 256 */
{ 5, 0, NULL, NULL }, /* 254 */
{ 5, 0, NULL, NULL }, /* 255 */
{ 1, 0, sys_set_tid_address, "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 */
@ -300,7 +298,7 @@
{ 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 */
{ 6, TD, sys_fadvise64_64, "fadvise64_64" }, /* 270 */
{ 5, 0, printargs, "pciconfig_iobase" }, /* 271 */
{ 5, 0, printargs, "pciconfig_read" }, /* 272 */
{ 5, 0, printargs, "pciconfig_write" }, /* 273 */
@ -339,14 +337,14 @@
{ 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, 0, sys_add_key, "add_key" }, /* 309 */
{ 4, 0, sys_request_key, "request_key" }, /* 310 */
{ 5, 0, sys_keyctl, "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 */
{ 5, 0, sys_vserver, "vserver" }, /* 313 */
{ 3, 0, sys_ioprio_set, "ioprio_set" }, /* 314 */
{ 2, 0, sys_ioprio_get, "ioprio_get" }, /* 315 */
{ 0, TD, sys_inotify_init, "inotify_init" }, /* 316 */
{ 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 317 */
{ 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 318 */
{ 6, 0, sys_mbind, "mbind" }, /* 319 */
@ -357,7 +355,7 @@
{ 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 */
{ 4, TD|TF, 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 */
@ -365,77 +363,77 @@
{ 4, TD|TF, sys_readlinkat, "readlinkat" }, /* 332 */
{ 3, TD|TF, sys_fchmodat, "fchmodat" }, /* 333 */
{ 3, TD|TF, sys_faccessat, "faccessat" }, /* 334 */
{ 5, 0, printargs, "SYS_335" }, /* 335 */
{ 5, 0, printargs, "SYS_336" }, /* 336 */
{ 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 */
{ 2, 0, sys_set_robust_list, "set_robust_list" }, /* 338 */
{ 3, 0, sys_get_robust_list, "get_robust_list" }, /* 339 */
{ 6, TD, sys_splice, "splice" }, /* 340 */
{ 5, 0, NULL, NULL }, /* 341 */
{ 4, TD, sys_tee, "tee" }, /* 342 */
{ 4, TD, sys_vmsplice, "vmsplice" }, /* 343 */
{ 6, 0, sys_move_pages, "move_pages" }, /* 344 */
{ 3, 0, sys_getcpu, "getcpu" }, /* 345 */
{ 5, 0, printargs, "SYS_346" }, /* 346 */
{ 5, 0, printargs, "kexec_load" }, /* 347 */
{ 6, TD, sys_epoll_pwait, "epoll_pwait" }, /* 346 */
{ 4, 0, sys_kexec_load, "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 */
{ 6, TD, sys_fallocate, "fallocate" }, /* 352 */
{ 4, TD, sys_timerfd_settime, "timerfd_settime"}, /* 353 */
{ 2, TD, sys_timerfd_gettime, "timerfd_gettime"}, /* 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 */
{ 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 355 */
{ 2, TD, sys_eventfd2, "eventfd2" }, /* 356 */
{ 1, TD, 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 */
{ 6, TD, sys_preadv, "preadv" }, /* 361 */
{ 6, TD, sys_pwritev, "pwritev" }, /* 362 */
{ 4, TP|TS, sys_rt_tgsigqueueinfo, "rt_tgsigqueueinfo"}, /* 363 */
{ 5, TD, sys_perf_event_open, "perf_event_open"}, /* 364 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 365 */
{ 4, TN, sys_accept4, "accept4" }, /* 366 */
{ 2, TD, sys_fanotify_init, "fanotify_init" }, /* 367 */
{ 5, TD|TF, sys_fanotify_mark, "fanotify_mark" }, /* 368 */
{ 4, 0, sys_prlimit64, "prlimit64" }, /* 369 */
{ 5, TD|TF, sys_name_to_handle_at, "name_to_handle_at"}, /* 370 */
{ 3, TD, sys_open_by_handle_at, "open_by_handle_at"}, /* 371 */
{ 2, 0, sys_clock_adjtime, "clock_adjtime" }, /* 372 */
{ 1, TD, sys_syncfs, "syncfs" }, /* 373 */
{ 4, TN, sys_sendmmsg, "sendmmsg" }, /* 374 */
{ 2, TD, sys_setns, "setns" }, /* 375 */
{ 6, 0, sys_process_vm_readv, "process_vm_readv" }, /* 376 */
{ 6, 0, sys_process_vm_writev, "process_vm_writev" }, /* 377 */
{ 5, 0, NULL, NULL }, /* 378 */
{ 5, 0, NULL, NULL }, /* 379 */
{ 5, 0, NULL, NULL }, /* 380 */
{ 5, 0, NULL, NULL }, /* 381 */
{ 5, 0, NULL, NULL }, /* 382 */
{ 5, 0, NULL, NULL }, /* 383 */
{ 5, 0, NULL, NULL }, /* 384 */
{ 5, 0, NULL, NULL }, /* 385 */
{ 5, 0, NULL, NULL }, /* 386 */
{ 5, 0, NULL, NULL }, /* 387 */
{ 5, 0, NULL, NULL }, /* 388 */
{ 5, 0, NULL, NULL }, /* 389 */
{ 5, 0, NULL, NULL }, /* 390 */
{ 5, 0, NULL, NULL }, /* 391 */
{ 5, 0, NULL, NULL }, /* 392 */
{ 5, 0, NULL, NULL }, /* 393 */
{ 5, 0, NULL, NULL }, /* 394 */
{ 5, 0, NULL, NULL }, /* 395 */
{ 5, 0, NULL, NULL }, /* 396 */
{ 5, 0, NULL, NULL }, /* 397 */
{ 5, 0, NULL, NULL }, /* 398 */
{ 5, 0, NULL, NULL }, /* 399 */
#ifndef __ARM_EABI__
#if SYS_socket_subcall != 400
#error fix me
#endif
{ 8, 0, printargs, "socket_subcall"}, /* 400 */
{ 6, 0, printargs, "socket_subcall"}, /* 400 */
{ 3, TN, sys_socket, "socket" }, /* 401 */
{ 3, TN, sys_bind, "bind" }, /* 402 */
{ 3, TN, sys_connect, "connect" }, /* 403 */
@ -451,36 +449,37 @@
{ 2, TN, sys_shutdown, "shutdown" }, /* 413 */
{ 5, TN, sys_setsockopt, "setsockopt" }, /* 414 */
{ 5, TN, sys_getsockopt, "getsockopt" }, /* 415 */
{ 5, TN, sys_sendmsg, "sendmsg" }, /* 416 */
{ 3, 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 != 419
#if SYS_ipc_subcall != 420
#error fix me
#endif
{ 4, 0, printargs, "ipc_subcall" }, /* 419 */
{ 4, TI, sys_semop, "semop" }, /* 420 */
{ 4, TI, sys_semget, "semget" }, /* 421 */
{ 4, TI, sys_semctl, "semctl" }, /* 422 */
{ 5, TI, sys_semtimedop, "semtimedop" }, /* 423 */
{ 4, 0, printargs, "ipc_subcall" }, /* 424 */
{ 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, TI, sys_msgsnd, "msgsnd" }, /* 430 */
{ 4, TI, sys_msgrcv, "msgrcv" }, /* 431 */
{ 4, TI, sys_msgget, "msgget" }, /* 432 */
{ 4, TI, sys_msgctl, "msgctl" }, /* 433 */
{ 4, 0, printargs, "ipc_subcall" }, /* 434 */
{ 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, TI, sys_shmat, "shmat" }, /* 440 */
{ 4, TI, sys_shmdt, "shmdt" }, /* 441 */
{ 4, TI, sys_shmget, "shmget" }, /* 442 */
{ 4, TI, sys_shmctl, "shmctl" }, /* 443 */
{ 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

View File

@ -1,5 +1,5 @@
/* ARM specific syscalls */
{ 5, 0, printargs, "SYS_0" }, /* 0 */
{ 5, 0, NULL, NULL }, /* 0 */
{ 5, 0, printargs, "breakpoint" }, /* 1 */
{ 5, 0, printargs, "cacheflush" }, /* 2 */
{ 5, 0, printargs, "usr26" }, /* 3 */

View File

@ -0,0 +1 @@
#include "../i386/ioctlent.h.in"

View File

@ -23,8 +23,6 @@
* 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 */
@ -51,7 +49,7 @@
{ 5, TF, sys_mount, "mount" }, /* 21 */
{ 2, TF, sys_umount, "umount" }, /* 22 */
{ 1, 0, sys_setuid, "setuid" }, /* 23 */
{ 0, 0, sys_getuid, "getuid" }, /* 24 */
{ 0, NF, sys_getuid, "getuid" }, /* 24 */
{ 1, 0, sys_stime, "stime" }, /* 25 */
{ 4, 0, sys_ptrace, "ptrace" }, /* 26 */
{ 1, 0, sys_alarm, "alarm" }, /* 27 */
@ -74,17 +72,17 @@
{ 5, TP, sys_clone, "clone" }, /* 44 */
{ 1, 0, sys_brk, "brk" }, /* 45 */
{ 1, 0, sys_setgid, "setgid" }, /* 46 */
{ 0, 0, sys_getgid, "getgid" }, /* 47 */
{ 0, NF, sys_getgid, "getgid" }, /* 47 */
{ 2, TF, sys_getcwd, "getcwd" }, /* 48 */
{ 0, 0, sys_geteuid, "geteuid" }, /* 49 */
{ 0, 0, sys_getegid, "getegid" }, /* 50 */
{ 0, NF, sys_geteuid, "geteuid" }, /* 49 */
{ 0, NF, sys_getegid, "getegid" }, /* 50 */
{ 1, TF, sys_acct, "acct" }, /* 51 */
{ 1, 0, sys_setfsuid, "setfsuid" }, /* 52 */
{ 1, 0, sys_setfsgid, "setfsgid" }, /* 53 */
{ 1, NF, sys_setfsuid, "setfsuid" }, /* 52 */
{ 1, NF, sys_setfsgid, "setfsgid" }, /* 53 */
{ 3, TD, sys_ioctl, "ioctl" }, /* 54 */
{ 3, TD, sys_fcntl, "fcntl" }, /* 55 */
{ 2, 0, sys_setpgid, "setpgid" }, /* 56 */
{ 4, 0, sys_mremap, "mremap" }, /* 57 */
{ 5, 0, sys_mremap, "mremap" }, /* 57 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 58 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 59 */
{ 2, 0, sys_setreuid, "setreuid" }, /* 60 */
@ -94,8 +92,8 @@
{ 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_sigaction, "rt_sigaction" }, /* 67 */
{ 0, TS, sys_rt_sigreturn, "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 */
@ -115,9 +113,9 @@
{ 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, TF, sys_swapon, "swapon" }, /* 88 */
{ 4, 0, sys_reboot, "reboot" }, /* 89 */
{ 6, TD, sys_mmap, "mmap" }, /* 90 */
{ 2, 0, sys_munmap, "munmap" }, /* 91 */
{ 2, TF, sys_truncate, "truncate" }, /* 92 */
{ 2, TD, sys_ftruncate, "ftruncate" }, /* 93 */
@ -133,9 +131,9 @@
{ 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, TF, sys_swapoff, "swapoff" }, /* 106 */
{ 1, 0, sys_sysinfo, "sysinfo" }, /* 107 */
{ 6, 0, sys_ipc, "ipc" }, /* 108 */
{ 6, TI, sys_ipc, "ipc" }, /* 108 */
{ 4, TD|TN, sys_sendfile, "sendfile" }, /* 109 */
{ 2, 0, sys_setdomainname, "setdomainname" }, /* 110 */
{ 1, 0, sys_uname, "uname" }, /* 111 */
@ -160,7 +158,7 @@
{ 1, 0, sys_sysctl, "_sysctl" }, /* 130 */
{ 2, 0, sys_mlock, "mlock" }, /* 131 */
{ 2, 0, sys_munlock, "munlock" }, /* 132 */
{ 2, 0, sys_mlockall, "mlockall" }, /* 133 */
{ 1, 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 */
@ -172,7 +170,7 @@
{ 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_nfsservctl, "nfsservctl" }, /* 145 */
{ 3, 0, sys_setresgid, "setresgid" }, /* 146 */
{ 3, 0, sys_getresgid, "getresgid" }, /* 147 */
{ 5, 0, sys_prctl, "prctl" }, /* 148 */
@ -191,7 +189,7 @@
{ 2, TN, sys_shutdown, "shutdown" }, /* 161 */
{ 5, TN, sys_setsockopt, "setsockopt" }, /* 162 */
{ 5, TN, sys_getsockopt, "getsockopt" }, /* 163 */
{ 5, TN, sys_sendmsg, "sendmsg" }, /* 164 */
{ 3, TN, sys_sendmsg, "sendmsg" }, /* 164 */
{ 5, TN, sys_recvmsg, "recvmsg" }, /* 165 */
{ 3, TF, sys_truncate64, "truncate64" }, /* 166 */
{ 3, TD, sys_ftruncate64, "ftruncate64" }, /* 167 */
@ -199,25 +197,25 @@
{ 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_mincore, "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 */
{ 0, 0, sys_gettid, "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 */
{ 4, TD, sys_fgetxattr, "fgetxattr" }, /* 183 */
{ 3, TF, sys_listxattr, "listxattr" }, /* 184 */
{ 3, TF, sys_listxattr, "llistxattr" }, /* 185 */
{ 3, 0, sys_flistxattr, "flistxattr" }, /* 186 */
{ 3, TD, 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 */
{ 2, TS, 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 */
@ -229,14 +227,14 @@
{ 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 */
{ 5, TD, 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, 0, sys_lookup_dcookie, "lookup_dcookie"}, /* 204 */
{ 1, TD, 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 */
{ 1, 0, sys_set_tid_address, "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 */
@ -249,25 +247,25 @@
{ 3, TF, sys_statfs64, "statfs64" }, /* 219 */
{ 3, TD, sys_fstatfs64, "fstatfs64" }, /* 220 */
{ 3, TS, sys_tgkill, "tgkill" }, /* 221 */
{ 5, 0, printargs, "SYS_222" }, /* 222 */
{ 5, 0, NULL, NULL }, /* 222 */
{ 2, TF, sys_utimes, "utimes" }, /* 223 */
{ 6, 0, sys_fadvise64_64, "fadvise64_64" }, /* 224 */
{ 6, TD, sys_fadvise64_64, "fadvise64_64" }, /* 224 */
{ 3, 0, printargs, "cacheflush" }, /* 225 */
{ 5, 0, printargs, "vserver" }, /* 226 */
{ 5, 0, sys_vserver, "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 */
{ 4, 0, sys_kexec_load, "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 */
{ 5, 0, sys_add_key, "add_key" }, /* 235 */
{ 4, 0, sys_request_key, "request_key" }, /* 236 */
{ 5, 0, sys_keyctl, "keyctl" }, /* 237 */
{ 3, 0, sys_ioprio_set, "ioprio_set" }, /* 238 */
{ 2, 0, sys_ioprio_get, "ioprio_get" }, /* 239 */
{ 0, 0, sys_inotify_init, "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 */
@ -286,13 +284,13 @@
{ 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 */
{ 2, 0, sys_set_robust_list, "set_robust_list" }, /* 259 */
{ 3, 0, sys_get_robust_list, "get_robust_list" }, /* 260 */
{ 6, TD, sys_splice, "splice" }, /* 261 */
{ 4, TD, sys_sync_file_range, "sync_file_range" }, /* 262 */
{ 4, TD, sys_tee, "tee" }, /* 263 */
{ 4, TD, sys_vmsplice, "vmsplice" }, /* 264 */
{ 6, 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 */
@ -309,3 +307,5 @@
{ 3, TD|TS, sys_signalfd, "signalfd" }, /* 279 */
{ 2, TD, sys_timerfd, "timerfd_create" }, /* 280 */
{ 1, TD, sys_eventfd, "eventfd" }, /* 281 */
{ 5, 0, NULL, NULL }, /* 282 */
{ 2, TD, sys_setns, "setns" }, /* 283 */

86
linux/bfin/ioctlent.h.in Normal file
View File

@ -0,0 +1,86 @@
{"asm/bfin_sport.h", "SPORT_IOC_CONFIG", 0x5001},
{"asm/bfin_sport.h", "SPORT_IOC_GET_SYSTEMCLOCK", 0x5002},
{"asm/bfin_sport.h", "SPORT_IOC_SET_BAUDRATE", 0x5003},
{"asm-generic/ioctls.h", "TCGETS", 0x5401},
{"asm-generic/ioctls.h", "TCSETS", 0x5402},
{"asm-generic/ioctls.h", "TCSETSW", 0x5403},
{"asm-generic/ioctls.h", "TCSETSF", 0x5404},
{"asm-generic/ioctls.h", "TCGETA", 0x5405},
{"asm-generic/ioctls.h", "TCSETA", 0x5406},
{"asm-generic/ioctls.h", "TCSETAW", 0x5407},
{"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", "TIOCTTYGSTRUCT", 0x5426},
{"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", "TIOCSIG", 0x5436},
{"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/ioctls.h", "FIOQSIZE", 0x545e},
{"asm-generic/ioctls.h", "TIOCGHAYESESP", 0x545e},
{"asm-generic/ioctls.h", "TIOCSHAYESESP", 0x545f},
{"asm-generic/ioctls.h", "FIOQSIZE", 0x5460},
{"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},
{"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},

View File

@ -24,22 +24,20 @@
* 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 */
{ 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", SYS_wait4 }, /* 7 */
{ 3, TP, sys_waitpid, "waitpid" }, /* 7 */
{ 2, TD|TF, sys_creat, "creat" }, /* 8 */
{ 2, TF, sys_link, "link" }, /* 9 */
{ 1, TF, sys_unlink, "unlink" }, /* 10 */
{ 3, TF|TP, sys_execve, "execve", SYS_execve }, /* 11 */
{ 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 */
@ -52,7 +50,7 @@
{ 5, TF, sys_mount, "mount" }, /* 21 */
{ 1, TF, sys_umount, "oldumount" }, /* 22 */
{ 1, 0, sys_setuid, "setuid" }, /* 23 */
{ 0, 0, sys_getuid, "getuid" }, /* 24 */
{ 0, NF, sys_getuid, "getuid" }, /* 24 */
{ 1, 0, sys_stime, "stime" }, /* 25 */
{ 4, 0, sys_ptrace, "ptrace" }, /* 26 */
{ 1, 0, sys_alarm, "alarm" }, /* 27 */
@ -75,10 +73,10 @@
{ 0, 0, sys_prof, "prof" }, /* 44 */
{ 1, 0, sys_brk, "brk" }, /* 45 */
{ 1, 0, sys_setgid, "setgid" }, /* 46 */
{ 0, 0, sys_getgid, "getgid" }, /* 47 */
{ 0, NF, sys_getgid, "getgid" }, /* 47 */
{ 3, TS, sys_signal, "signal" }, /* 48 */
{ 0, 0, sys_geteuid, "geteuid" }, /* 49 */
{ 0, 0, sys_getegid, "getegid" }, /* 50 */
{ 0, NF, sys_geteuid, "geteuid" }, /* 49 */
{ 0, NF, sys_getegid, "getegid" }, /* 50 */
{ 1, TF, sys_acct, "acct" }, /* 51 */
{ 2, TF, sys_umount2, "umount" }, /* 52 */
{ 0, 0, sys_lock, "lock" }, /* 53 */
@ -96,8 +94,8 @@
{ 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 */
{ 0, TS, sys_siggetmask, "sgetmask" }, /* 68 */
{ 1, TS, sys_sigsetmask, "ssetmask" }, /* 69 */
{ 2, 0, sys_setreuid, "setreuid" }, /* 70 */
{ 2, 0, sys_setregid, "setregid" }, /* 71 */
{ 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
@ -115,8 +113,8 @@
{ 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 */
{ 2, TF, sys_swapon, "swapon" }, /* 87 */
{ 4, 0, sys_reboot, "reboot" }, /* 88 */
{ 3, TD, sys_readdir, "readdir" }, /* 89 */
{ 6, TD, sys_old_mmap, "old_mmap" }, /* 90 */
{ 2, 0, sys_munmap, "munmap" }, /* 91 */
@ -130,7 +128,7 @@
{ 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 */
{ 2, TD, sys_socketcall, "socketcall" }, /* 102 */
{ 3, 0, sys_syslog, "syslog" }, /* 103 */
{ 3, 0, sys_setitimer, "setitimer" }, /* 104 */
{ 2, 0, sys_getitimer, "getitimer" }, /* 105 */
@ -142,13 +140,13 @@
{ 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 */
{ 4, TP, sys_wait4, "wait4" }, /* 114 */
{ 1, TF, sys_swapoff, "swapoff" }, /* 115 */
{ 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
{ 6, 0, sys_ipc, "ipc", SYS_ipc }, /* 117 */
{ 6, TI, sys_ipc, "ipc" }, /* 117 */
{ 1, TD, sys_fsync, "fsync" }, /* 118 */
{ 1, TS, sys_sigreturn, "sigreturn" }, /* 119 */
{ 5, TP, sys_clone, "clone", SYS_clone }, /* 120 */
{ 0, TS, sys_sigreturn, "sigreturn" }, /* 119 */
{ 5, TP, sys_clone, "clone" }, /* 120 */
{ 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
{ 1, 0, sys_uname, "uname" }, /* 122 */
{ 3, 0, sys_modify_ldt, "modify_ldt" }, /* 123 */
@ -163,24 +161,24 @@
{ 1, 0, sys_getpgid, "getpgid" }, /* 132 */
{ 1, TD, sys_fchdir, "fchdir" }, /* 133 */
{ 0, 0, sys_bdflush, "bdflush" }, /* 134 */
{ 3, 0, printargs, "sysfs" }, /* 135 */
{ 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 */
{ 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */
{ 1, NF, 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 */
{ 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 */
{ 1, 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 */
@ -191,25 +189,25 @@
{ 1, 0, sys_sched_get_priority_min, "sched_get_priority_min" }, /* 160 */
{ 2, 0, sys_sched_rr_get_interval, "sched_rr_get_interval" }, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
{ 4, 0, sys_mremap, "mremap" }, /* 163 */
{ 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_vm86, "vm86" }, /* 166 */
{ 5, 0, sys_query_module, "query_module" }, /* 167 */
{ 3, TD, sys_poll, "poll" }, /* 168 */
{ 3, 0, printargs, "nfsservctl" }, /* 169 */
{ 3, 0, sys_nfsservctl, "nfsservctl" }, /* 169 */
{ 3, 0, sys_setresgid, "setresgid" }, /* 170 */
{ 3, 0, sys_getresgid, "getresgid" }, /* 171 */
{ 5, 0, printargs, "prctl" }, /* 172 */
{ 1, TS, printargs, "rt_sigreturn" }, /* 173 */
{ 5, 0, sys_prctl, "prctl" }, /* 172 */
{ 0, TS, sys_rt_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", SYS_read }, /* 180 */
{ 5, TD, sys_pwrite, "pwrite", SYS_write }, /* 181 */
{ 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 */
@ -218,19 +216,19 @@
{ 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 */
{ 0, TP, sys_vfork, "vfork" }, /* 190 */
{ 2, 0, sys_getrlimit, "getrlimit" }, /* 191 */
{ 6, 0, sys_mmap, "mmap2" }, /* 192 */
{ 6, TD, 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 */
{ 0, NF, sys_getuid, "getuid32" }, /* 199 */
{ 0, NF, sys_getgid, "getgid32" }, /* 200 */
{ 0, NF, sys_geteuid, "geteuid32" }, /* 201 */
{ 0, NF, sys_geteuid, "getegid32" }, /* 202 */
{ 2, 0, sys_setreuid, "setreuid32" }, /* 203 */
{ 2, 0, sys_setregid, "setregid32" }, /* 204 */
{ 2, 0, sys_getgroups32, "getgroups32" }, /* 205 */
@ -243,26 +241,26 @@
{ 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 */
{ 1, NF, sys_setfsuid, "setfsuid32" }, /* 215 */
{ 1, NF, sys_setfsgid, "setfsgid32" }, /* 216 */
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
{ 3, 0, sys_mincore, "mincore" }, /* 218 */
{ 3, 0, sys_madvise, "madvise" }, /* 219 */
{ 3, 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, 0, NULL, NULL }, /* 222 */
{ 5, 0, sys_security, "security" }, /* 223 */
{ 0, 0, sys_gettid, "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 */
{ 4, TD, sys_fgetxattr, "fgetxattr" }, /* 231 */
{ 3, TF, sys_listxattr, "listxattr" }, /* 232 */
{ 3, TF, sys_listxattr, "llistxattr" }, /* 233 */
{ 3, 0, sys_flistxattr, "flistxattr" }, /* 234 */
{ 3, TD, sys_flistxattr, "flistxattr" }, /* 234 */
{ 2, TF, sys_removexattr, "removexattr" }, /* 235 */
{ 2, TF, sys_removexattr, "lremovexattr" }, /* 236 */
{ 2, TD, sys_fremovexattr, "fremovexattr" }, /* 237 */
@ -280,14 +278,14 @@
{ 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, TP, sys_exit, "exit_group" }, /* 252 */
{ 4, 0, sys_lookup_dcookie, "lookup_dcookie" }, /* 253 */
{ 1, 0, printargs, "bfin_spinlock" }, /* 254 */
{ 1, 0, sys_epoll_create, "epoll_create" }, /* 255 */
{ 1, TD, 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 */
{ 1, 0, sys_set_tid_address, "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 */
@ -301,8 +299,8 @@
{ 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, TD, sys_fadvise64_64, "fadvise64_64" }, /* 273 */
{ 5, 0, sys_vserver, "vserver" }, /* 274 */
{ 6, 0, sys_mbind, "mbind" }, /* 275 */
{ 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 276 */
{ 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 277 */
@ -312,23 +310,23 @@
{ 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 */
{ 4, 0, sys_kexec_load, "kexec_load" }, /* 284 */
{ 5, TP, sys_waitid, "waitid" }, /* 285 */
{ 5, 0, sys_add_key, "add_key" }, /* 286 */
{ 4, 0, sys_request_key, "request_key" }, /* 287 */
{ 5, 0, sys_keyctl, "keyctl" }, /* 288 */
{ 3, 0, sys_ioprio_set, "ioprio_set" }, /* 289 */
{ 2, 0, sys_ioprio_get, "ioprio_get" }, /* 290 */
{ 0, TD, sys_inotify_init, "inotify_init" }, /* 291 */
{ 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 292 */
{ 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 293 */
{ 4, 0, printargs, "migrate_pages" }, /* 294 */
{ 4, 0, sys_migrate_pages, "migrate_pages" }, /* 294 */
{ 4, TD|TF, sys_openat, "openat" }, /* 295 */
{ 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 296 */
{ 4, TD|TF, sys_mknodat, "mknodat" }, /* 297 */
{ 5, TD|TF, sys_fchownat, "fchownat" }, /* 298 */
{ 3, TD|TF, sys_futimesat, "futimesat" }, /* 299 */
{ 4, TD|TD, sys_newfstatat, "fstatat64" }, /* 300 */
{ 4, TD|TF, 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 */
@ -349,12 +347,12 @@
{ 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 */
{ 4, TN, sys_recv, "recv" }, /* 321 */
{ 6, TN, sys_recvfrom, "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 */
{ 4, TN, sys_send, "send" }, /* 324 */
{ 3, TN, sys_sendmsg, "sendmsg" }, /* 325 */
{ 6, TN, sys_sendto, "sendto" }, /* 326 */
{ 5, TN, sys_setsockopt, "setsockopt" }, /* 327 */
{ 2, TN, sys_shutdown, "shutdown" }, /* 328 */
{ 3, TN, sys_socket, "socket" }, /* 329 */
@ -370,31 +368,42 @@
{ 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 */
{ 6, TD, sys_splice, "splice" }, /* 342 */
{ 4, TD, sys_sync_file_range, "sync_file_range" }, /* 343 */
{ 4, TD, sys_tee, "tee" }, /* 344 */
{ 4, TD, sys_vmsplice, "vmsplice" }, /* 345 */
{ 6, 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 */
{ 4, 0, printargs, "fallocate" }, /* 356 */
{ 5, TD, sys_fadvise64, "fadvise64" }, /* 353 */
{ 2, 0, sys_set_robust_list, "set_robust_list" }, /* 354 */
{ 3, 0, sys_get_robust_list, "get_robust_list" }, /* 355 */
{ 6, TD, 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, printargs, "signalfd4" }, /* 360 */
{ 2, TD, printargs, "eventfd2" }, /* 361 */
{ 1, 0, printargs, "epoll_create1" }, /* 362 */
{ 3, TD, printargs, "dup3" }, /* 363 */
{ 2, TD, printargs, "pipe2" }, /* 364 */
{ 1, TD, printargs, "inotify_init1" }, /* 365 */
{ 5, TD, printargs, "preadv" }, /* 366 */
{ 5, TD, printargs, "pwritev" }, /* 367 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 368 */
{ 5, 0, printargs, "perf_counter_open" }, /* 369 */
{ 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 360 */
{ 2, TD, sys_eventfd2, "eventfd2" }, /* 361 */
{ 1, TD, 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, sys_preadv, "preadv" }, /* 366 */
{ 5, TD, sys_pwritev, "pwritev" }, /* 367 */
{ 4, TP|TS, sys_rt_tgsigqueueinfo, "rt_tgsigqueueinfo" }, /* 368 */
{ 5, TD, sys_perf_event_open, "perf_event_open" }, /* 369 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 370 */
{ 2, TD, sys_fanotify_init, "fanotify_init" }, /* 371 */
{ 5, TD|TF, sys_fanotify_mark, "fanotify_mark" }, /* 372 */
{ 4, 0, sys_prlimit64, "prlimit64" }, /* 373 */
{ 3, 0, sys_cacheflush, "cacheflush" }, /* 374 */
{ 5, TD|TF, sys_name_to_handle_at, "name_to_handle_at" }, /* 375 */
{ 3, TD, sys_open_by_handle_at, "open_by_handle_at" }, /* 376 */
{ 2, 0, sys_clock_adjtime, "clock_adjtime" }, /* 377 */
{ 1, TD, sys_syncfs, "syncfs" }, /* 378 */
{ 2, TD, sys_setns, "setns" }, /* 379 */
{ 4, TN, sys_sendmmsg, "sendmmsg" }, /* 380 */

View File

@ -24,202 +24,136 @@
* 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_add_key printargs
#define sys_fanotify_init printargs
#define sys_fanotify_mark printargs
#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_ioprio_get printargs
#define sys_ioprio_set printargs
#define sys_kexec_load printargs
#define sys_keyctl printargs
#define sys_lookup_dcookie printargs
#define sys_name_to_handle_at printargs
#define sys_open_by_handle_at printargs
#define sys_perf_event_open printargs
#define sys_request_key printargs
#define sys_sync_file_range printargs
#define sys_sysfs printargs
#define sys_afs_syscall printargs
#define sys_vm86old printargs
#define sys_vm86 printargs
/* machine-specific */
#ifndef I386
#define sys_modify_ldt printargs
#define sys_get_thread_area printargs
#define sys_set_thread_area printargs
#ifndef M68K
#define sys_get_thread_area printargs
#define sys_set_thread_area printargs
#endif
#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
#define sys_chroot sys_chdir
#define sys_clock_getres sys_clock_gettime
#define sys_delete_module sys_open
#define sys_dup sys_close
#define sys_fchdir sys_close
#define sys_fdatasync sys_close
#define sys_fsync sys_close
#define sys_getegid sys_getuid
#define sys_geteuid sys_getuid
#define sys_getgid sys_getuid
#define sys_getresgid sys_getresuid
#define sys_mlock sys_munmap
#define sys_mq_unlink sys_chdir
#define sys_munlock sys_munmap
#define sys_pivotroot sys_link
#define sys_rename sys_link
#define sys_rmdir sys_chdir
#define sys_sched_get_priority_max sys_sched_get_priority_min
#define sys_set_robust_list sys_munmap
#define sys_setfsgid sys_setfsuid
#define sys_setgid sys_setuid
#define sys_setns sys_inotify_rm_watch
#define sys_setregid sys_setreuid
#define sys_setresgid sys_setresuid
#define sys_swapoff sys_chdir
#define sys_symlink sys_link
#define sys_syncfs sys_close
#define sys_umount sys_chdir
#define sys_unlink sys_chdir
#define sys_uselib sys_chdir
/* 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
#define sys_getpid printargs
#define sys_getppid printargs
#define sys_gettid printargs
#define sys_idle printargs
#define sys_inotify_init printargs
#define sys_munlockall printargs
#define sys_pause printargs
#define sys_rt_sigreturn printargs
#define sys_sched_yield printargs
#define sys_setsid printargs
#define sys_set_tid_address printargs
#define sys_setup printargs
#define sys_sync printargs
#define sys_timer_delete printargs
#define sys_timer_getoverrun printargs
#define sys_vhangup printargs
/* subcall entry points */
#define sys_socketcall printargs
#define sys_ipc printargs
/* printargs_lu/ld does the right thing */
#define sys_alarm printargs_lu
#define sys_getpgrp printargs_lu
#define sys_getsid printargs_lu
#define sys_nice printargs_ld
#define sys_setpgid printargs_lu
#define sys_setpgrp printargs_lu
/* unimplemented */
#define sys_stty printargs
#define sys_gtty printargs
#define sys_afs_syscall printargs
#define sys_break printargs
#define sys_ftime printargs
#define sys_prof printargs
#define sys_phys printargs
#define sys_get_kernel_syms printargs
#define sys_gtty printargs
#define sys_lock printargs
#define sys_mpx printargs
#define sys_ulimit printargs
#define sys_nfsservctl printargs
#define sys_phys printargs
#define sys_profil printargs
#define sys_prof printargs
#define sys_security printargs
#define sys_stty printargs
#define sys_tuxcall printargs
#define sys_ulimit printargs
#define sys_ustat printargs
#define sys_break printargs
#define sys_vserver printargs
/* deprecated */
#define sys_olduname printargs
#define sys_bdflush printargs
#define sys_oldolduname printargs
#define sys_olduname printargs
/* no library support */
#ifndef HAVE_SENDMSG
#define sys_sendmsg printargs
#define sys_recvmsg printargs
#define sys_recvmsg printargs
#define sys_sendmsg printargs
#endif
#ifndef SYS_getpmsg
#define sys_getpmsg printargs
#define sys_getpmsg printargs
#endif
#ifndef SYS_putpmsg
#define sys_putpmsg printargs
#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
#define sys_oldfstat printargs
#define sys_oldlstat printargs
#define sys_oldstat printargs
#endif

6
linux/dummy_check.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
grep '^#define' dummy.h | cut -f2 | \
while read func; do
grep -q -F -- "${func}(" syscall.h && echo "Defined as macro and as func: $func"
done

View File

@ -135,7 +135,7 @@
"EOWNERDEAD", /* 130 */
"ENOTRECOVERABLE", /* 131 */
"ERFKILL", /* 132 */
"ERRNO_133", /* 133 */
"EHWPOISON", /* 133 */
"ERRNO_134", /* 134 */
"ERRNO_135", /* 135 */
"ERRNO_136", /* 136 */

View File

@ -1,3 +0,0 @@
Makefile
ioctldefs.h
ioctls.h

View File

@ -1,779 +0,0 @@
{"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},

1
linux/hppa/ioctlent.h.in Normal file
View File

@ -0,0 +1 @@
#include "../i386/ioctlent.h.in"

View File

@ -1,8 +1,5 @@
/*
* Copyright (c) 2001 Hewlett-Packard, Matthew Wilcox
*
* $Id$
*
*/
{ 0, 0, sys_restart_syscall, "restart_syscall" }, /* 0 */
@ -29,7 +26,7 @@
{ 5, TF, sys_mount, "mount" }, /* 21 */
{ 3, TN, sys_bind, "bind" }, /* 22 */
{ 1, 0, sys_setuid, "setuid" }, /* 23 */
{ 0, 0, sys_getuid, "getuid" }, /* 24 */
{ 0, NF, sys_getuid, "getuid" }, /* 24 */
{ 1, 0, sys_stime, "stime" }, /* 25 */
{ 4, 0, sys_ptrace, "ptrace" }, /* 26 */
{ 1, 0, sys_alarm, "alarm" }, /* 27 */
@ -52,10 +49,10 @@
{ 3, TN, sys_getsockname, "getsockname" }, /* 44 */
{ 1, 0, sys_brk, "brk" }, /* 45 */
{ 1, 0, sys_setgid, "setgid" }, /* 46 */
{ 0, 0, sys_getgid, "getgid" }, /* 47 */
{ 0, NF, sys_getgid, "getgid" }, /* 47 */
{ 2, 0, sys_signal, "signal" }, /* 48 */
{ 0, 0, sys_geteuid, "geteuid" }, /* 49 */
{ 0, 0, sys_getegid, "getegid" }, /* 50 */
{ 0, NF, sys_geteuid, "geteuid" }, /* 49 */
{ 0, NF, sys_getegid, "getegid" }, /* 50 */
{ 1, TF, sys_acct, "acct" }, /* 51 */
{ 2, 0, sys_umount2, "umount2" }, /* 52 */
{ 3, TN, sys_getpeername, "lock" }, /* 53 */
@ -73,8 +70,8 @@
{ 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 */
{ 0, TS, sys_siggetmask, "sgetmask" }, /* 68 */
{ 1, TS, sys_sigsetmask, "ssetmask" }, /* 69 */
{ 2, 0, sys_setreuid, "setreuid" }, /* 70 */
{ 2, 0, sys_setregid, "setregid" }, /* 71 */
{ 3, 0, sys_mincore, "mincore" }, /* 72 */
@ -92,10 +89,10 @@
{ 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, TF, sys_swapon, "swapon" }, /* 87 */
{ 4, 0, sys_reboot, "reboot" }, /* 88 */
{ 6, TD, sys_mmap, "mmap2" }, /* 89 */
{ 6, TD, sys_mmap, "mmap" }, /* 90 */
{ 2, 0, sys_munmap, "munmap" }, /* 91 */
{ 2, TF, sys_truncate, "truncate" }, /* 92 */
{ 2, TD, sys_ftruncate, "ftruncate" }, /* 93 */
@ -107,7 +104,7 @@
{ 2, TF, sys_statfs, "statfs" }, /* 99 */
{ 2, TD, sys_fstatfs, "fstatfs" }, /* 100 */
{ 2, TF, sys_stat64, "stat64" }, /* 101 */
{ 5, 0, printargs, "SYS_102" }, /* 102 */
{ 5, 0, NULL, NULL }, /* 102 */
{ 3, 0, sys_syslog, "syslog" }, /* 103 */
{ 3, 0, sys_setitimer, "setitimer" }, /* 104 */
{ 2, 0, sys_getitimer, "getitimer" }, /* 105 */
@ -120,7 +117,7 @@
{ 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, TF, sys_swapoff, "swapoff" }, /* 115 */
{ 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
{ 2, TN, sys_shutdown, "shutdown" }, /* 117 */
{ 1, TD, sys_fsync, "fsync" }, /* 118 */
@ -143,8 +140,8 @@
{ 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 */
{ 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */
{ 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */
{ 5, TF, sys_llseek, "_llseek" }, /* 140 */
{ 3, TD, sys_getdents, "getdents" }, /* 141 */
{ 5, TD, sys_select, "_newselect" }, /* 142 */
@ -168,17 +165,17 @@
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
{ 4, 0, sys_mremap, "mremap" }, /* 163 */
{ 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_nfsservctl, "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 */
{ 0, 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 */
@ -188,7 +185,7 @@
{ 3, TF, sys_chown, "chown" }, /* 180 */
{ 5, TN, sys_setsockopt, "setsockopt" }, /* 181 */
{ 5, TN, sys_getsockopt, "getsockopt" }, /* 182 */
{ 5, TN, sys_sendmsg, "sendmsg" }, /* 183 */
{ 3, TN, sys_sendmsg, "sendmsg" }, /* 183 */
{ 5, TN, sys_recvmsg, "recvmsg" }, /* 184 */
{ 4, TI, sys_semop, "semop" }, /* 185 */
{ 4, TI, sys_semget, "semget" }, /* 186 */
@ -211,7 +208,7 @@
{ 5, 0, printargs, "attrctl" }, /* 203 */
{ 5, 0, printargs, "acl_get" }, /* 204 */
{ 5, 0, printargs, "acl_set" }, /* 205 */
{ 0, 0, printargs, "gettid" }, /* 206 */
{ 0, 0, sys_gettid, "gettid" }, /* 206 */
{ 4, TD, sys_readahead, "readahead" }, /* 207 */
{ 2, TS, sys_kill, "tkill" }, /* 208 */
{ 4, TD|TN, sys_sendfile, "sendfile64" }, /* 209 */
@ -228,12 +225,12 @@
{ 5, 0, printargs, "alloc_hugepages" }, /* 220 */
{ 1, 0, printargs, "free_hugepages" }, /* 221 */
{ 1, TP, sys_exit, "exit_group" }, /* 222 */
{ 4, 0, printargs, "lookup_dcookie" }, /* 223 */
{ 1, 0, sys_epoll_create, "epoll_create" }, /* 224 */
{ 4, 0, sys_lookup_dcookie, "lookup_dcookie" }, /* 223 */
{ 1, TD, 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, TI, sys_semtimedop, "semtimedop" }, /* 228 */
{ 5, 0, printargs, "mq_open" }, /* 229 */
{ 5, 0, printargs, "mq_unlink" }, /* 230 */
{ 5, 0, printargs, "mq_timedsend" }, /* 231 */
@ -241,14 +238,14 @@
{ 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, TD, printargs, "fadvise64_64" }, /* 236 */
{ 5, 0, sys_set_tid_address, "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 */
{ 4, TD, sys_fgetxattr, "fgetxattr" }, /* 243 */
{ 5, TF, sys_listxattr, "listxattr" }, /* 244 */
{ 5, TF, sys_listxattr, "llistxattr" }, /* 245 */
{ 5, 0, sys_flistxattr, "flistxattr" }, /* 246 */
@ -264,20 +261,20 @@
{ 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 */
{ 3, TS, sys_tgkill, "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 */
{ 5, 0, sys_vserver, "vserver" }, /* 263 */
{ 5, 0, sys_add_key, "add_key" }, /* 264 */
{ 4, 0, sys_request_key, "request_key" }, /* 265 */
{ 5, 0, sys_keyctl, "keyctl" }, /* 266 */
{ 3, 0, sys_ioprio_set, "ioprio_set" }, /* 267 */
{ 2, 0, sys_ioprio_get, "ioprio_get" }, /* 268 */
{ 0, TD, sys_inotify_init, "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 */
{ 4, 0, sys_migrate_pages, "migrate_pages" }, /* 272 */
{ 6, TD, sys_pselect6, "pselect6" }, /* 273 */
{ 5, TD, sys_ppoll, "ppoll" }, /* 274 */
{ 4, TD|TF, sys_openat, "openat" }, /* 275 */
@ -285,7 +282,7 @@
{ 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 */
{ 4, TD|TF, 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 */
@ -294,33 +291,44 @@
{ 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 */
{ 2, 0, sys_set_robust_list, "set_robust_list" }, /* 289 */
{ 3, 0, sys_get_robust_list, "get_robust_list" }, /* 290 */
{ 6, TD, sys_splice, "splice" }, /* 291 */
{ 4, TD, sys_sync_file_range, "sync_file_range" }, /* 292 */
{ 4, TD, sys_tee, "tee" }, /* 293 */
{ 4, TD, sys_vmsplice, "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, 0, sys_kexec_load, "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 */
{ 6, TD, 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, printargs, "signalfd4" }, /* 309 */
{ 2, TD, printargs, "eventfd2" }, /* 310 */
{ 1, 0, printargs, "epoll_create1" }, /* 311 */
{ 3, TD, printargs, "dup3" }, /* 312 */
{ 2, TD, printargs, "pipe2" }, /* 313 */
{ 1, TD, printargs, "inotify_init1" }, /* 314 */
{ 5, TD, printargs, "preadv" }, /* 315 */
{ 5, TD, printargs, "pwritev" }, /* 316 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 317 */
{ 5, 0, printargs, "perf_counter_open" }, /* 318 */
{ 4, TD|TS, sys_signalfd4, "signalfd4" }, /* 309 */
{ 2, TD, sys_eventfd2, "eventfd2" }, /* 310 */
{ 1, TD, 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, sys_preadv, "preadv" }, /* 315 */
{ 5, TD, sys_pwritev, "pwritev" }, /* 316 */
{ 4, TP|TS, sys_rt_tgsigqueueinfo, "rt_tgsigqueueinfo" }, /* 317 */
{ 5, TD, sys_perf_event_open, "perf_event_open" }, /* 318 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 319 */
{ 4, TN, sys_accept4, "accept4" }, /* 320 */
{ 4, 0, sys_prlimit64, "prlimit64" }, /* 321 */
{ 2, TD, sys_fanotify_init, "fanotify_init" }, /* 322 */
{ 5, TD|TF, sys_fanotify_mark, "fanotify_mark" }, /* 323 */
{ 2, 0, sys_clock_adjtime, "clock_adjtime" }, /* 324 */
{ 5, TD|TF, sys_name_to_handle_at, "name_to_handle_at" }, /* 325 */
{ 3, TD, sys_open_by_handle_at, "open_by_handle_at" }, /* 326 */
{ 1, TD, sys_syncfs, "syncfs" }, /* 327 */
{ 2, TD, sys_setns, "setns" }, /* 328 */
{ 4, TN, sys_sendmmsg, "sendmmsg" }, /* 329 */

92
linux/i386/ioctlent.h.in Normal file
View File

@ -0,0 +1,92 @@
{"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},
{"asm-generic/ioctls.h", "TCGETS", 0x5401},
{"asm-generic/ioctls.h", "TCSETS", 0x5402},
{"asm-generic/ioctls.h", "TCSETSW", 0x5403},
{"asm-generic/ioctls.h", "TCSETSF", 0x5404},
{"asm-generic/ioctls.h", "TCGETA", 0x5405},
{"asm-generic/ioctls.h", "TCSETA", 0x5406},
{"asm-generic/ioctls.h", "TCSETAW", 0x5407},
{"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", "TIOCGDEV", 0x5432},
{"asm-generic/ioctls.h", "TCSETX", 0x5433},
{"asm-generic/ioctls.h", "TCSETXF", 0x5434},
{"asm-generic/ioctls.h", "TCSETXW", 0x5435},
{"asm-generic/ioctls.h", "TIOCSIG", 0x5436},
{"asm-generic/ioctls.h", "TIOCVHANGUP", 0x5437},
{"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", "FIOQSIZE", 0x5460},
{"asm/msr.h", "X86_IOC_RDMSR_REGS", 0x63a0},
{"asm/msr.h", "X86_IOC_WRMSR_REGS", 0x63a1},
{"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},

View File

@ -24,22 +24,20 @@
* 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 */
{ 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", SYS_wait4 }, /* 7 */
{ 3, TP, sys_waitpid, "waitpid", }, /* 7 */
{ 2, TD|TF, sys_creat, "creat" }, /* 8 */
{ 2, TF, sys_link, "link" }, /* 9 */
{ 1, TF, sys_unlink, "unlink" }, /* 10 */
{ 3, TF|TP, sys_execve, "execve", SYS_execve }, /* 11 */
{ 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 */
@ -52,7 +50,7 @@
{ 5, TF, sys_mount, "mount" }, /* 21 */
{ 1, TF, sys_umount, "oldumount" }, /* 22 */
{ 1, 0, sys_setuid, "setuid" }, /* 23 */
{ 0, 0, sys_getuid, "getuid" }, /* 24 */
{ 0, NF, sys_getuid, "getuid" }, /* 24 */
{ 1, 0, sys_stime, "stime" }, /* 25 */
{ 4, 0, sys_ptrace, "ptrace" }, /* 26 */
{ 1, 0, sys_alarm, "alarm" }, /* 27 */
@ -75,10 +73,10 @@
{ 0, 0, sys_prof, "prof" }, /* 44 */
{ 1, 0, sys_brk, "brk" }, /* 45 */
{ 1, 0, sys_setgid, "setgid" }, /* 46 */
{ 0, 0, sys_getgid, "getgid" }, /* 47 */
{ 0, NF, sys_getgid, "getgid" }, /* 47 */
{ 3, TS, sys_signal, "signal" }, /* 48 */
{ 0, 0, sys_geteuid, "geteuid" }, /* 49 */
{ 0, 0, sys_getegid, "getegid" }, /* 50 */
{ 0, NF, sys_geteuid, "geteuid" }, /* 49 */
{ 0, NF, sys_getegid, "getegid" }, /* 50 */
{ 1, TF, sys_acct, "acct" }, /* 51 */
{ 2, TF, sys_umount2, "umount" }, /* 52 */
{ 0, 0, sys_lock, "lock" }, /* 53 */
@ -96,8 +94,8 @@
{ 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 */
{ 0, TS, sys_siggetmask, "sgetmask" }, /* 68 */
{ 1, TS, sys_sigsetmask, "ssetmask" }, /* 69 */
{ 2, 0, sys_setreuid, "setreuid" }, /* 70 */
{ 2, 0, sys_setregid, "setregid" }, /* 71 */
{ 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
@ -115,8 +113,8 @@
{ 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 */
{ 2, TF, sys_swapon, "swapon" }, /* 87 */
{ 4, 0, sys_reboot, "reboot" }, /* 88 */
{ 3, TD, sys_readdir, "readdir" }, /* 89 */
{ 6, TD, sys_old_mmap, "old_mmap" }, /* 90 */
{ 2, 0, sys_munmap, "munmap" }, /* 91 */
@ -130,7 +128,7 @@
{ 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 */
{ 2, TD, sys_socketcall, "socketcall" }, /* 102 */
{ 3, 0, sys_syslog, "syslog" }, /* 103 */
{ 3, 0, sys_setitimer, "setitimer" }, /* 104 */
{ 2, 0, sys_getitimer, "getitimer" }, /* 105 */
@ -142,13 +140,13 @@
{ 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 */
{ 4, TP, sys_wait4, "wait4", }, /* 114 */
{ 1, TF, sys_swapoff, "swapoff" }, /* 115 */
{ 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
{ 6, 0, sys_ipc, "ipc", SYS_ipc }, /* 117 */
{ 6, TI, sys_ipc, "ipc", }, /* 117 */
{ 1, TD, sys_fsync, "fsync" }, /* 118 */
{ 1, TS, sys_sigreturn, "sigreturn" }, /* 119 */
{ 5, TP, sys_clone, "clone", SYS_clone }, /* 120 */
{ 0, TS, sys_sigreturn, "sigreturn" }, /* 119 */
{ 5, TP, sys_clone, "clone" }, /* 120 */
{ 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
{ 1, 0, sys_uname, "uname" }, /* 122 */
{ 3, 0, sys_modify_ldt, "modify_ldt" }, /* 123 */
@ -163,24 +161,24 @@
{ 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 */
{ 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 */
{ 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */
{ 1, NF, 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 */
{ 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 */
{ 1, 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 */
@ -191,26 +189,26 @@
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
{ 4, 0, sys_mremap, "mremap" }, /* 163 */
{ 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_vm86, "vm86" }, /* 166 */
{ 5, 0, sys_query_module, "query_module" }, /* 167 */
{ 3, TD, sys_poll, "poll" }, /* 168 */
{ 3, 0, printargs, "nfsservctl" }, /* 169 */
{ 3, 0, sys_nfsservctl, "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 */
{ 0, TS, sys_rt_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, "pread64", SYS_read }, /* 180 */
{ 5, TD, sys_pwrite, "pwrite64", SYS_write }, /* 181 */
{ 5, TD, sys_pread, "pread64", }, /* 180 */
{ 5, TD, sys_pwrite, "pwrite64", }, /* 181 */
{ 3, TF, sys_chown, "chown" }, /* 182 */
{ 2, TF, sys_getcwd, "getcwd" }, /* 183 */
{ 2, 0, sys_capget, "capget" }, /* 184 */
@ -219,20 +217,20 @@
{ 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 */
{ 0, TP, sys_vfork, "vfork" }, /* 190 */
{ 2, 0, sys_getrlimit, "getrlimit" }, /* 191 */
{ 6, 0, sys_mmap, "mmap2" }, /* 192 */
{ 6, TD, 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, NF, sys_getuid, "getuid32" }, /* 199 */
{ 0, 0, sys_getgid, "getgid32" }, /* 200 */
{ 0, 0, sys_geteuid, "geteuid32" }, /* 201 */
{ 0, 0, sys_getegid, "getegid32" }, /* 202 */
{ 0, NF, sys_getgid, "getgid32" }, /* 200 */
{ 0, NF, sys_geteuid, "geteuid32" }, /* 201 */
{ 0, NF, sys_getegid, "getegid32" }, /* 202 */
{ 2, 0, sys_setreuid, "setreuid32" }, /* 203 */
{ 2, 0, sys_setregid, "setregid32" }, /* 204 */
{ 2, 0, sys_getgroups32, "getgroups32" }, /* 205 */
@ -245,26 +243,26 @@
{ 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 */
{ 1, NF, sys_setfsuid, "setfsuid32" }, /* 215 */
{ 1, NF, sys_setfsgid, "setfsgid32" }, /* 216 */
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
{ 3, 0, sys_mincore, "mincore" }, /* 218 */
{ 3, 0, sys_madvise, "madvise" }, /* 219 */
{ 3, 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 */
{ 6, 0, NULL, NULL }, /* 222 */
{ 5, 0, sys_security, "security" }, /* 223 */
{ 0, 0, sys_gettid, "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 */
{ 4, TD, sys_fgetxattr, "fgetxattr" }, /* 231 */
{ 3, TF, sys_listxattr, "listxattr" }, /* 232 */
{ 3, TF, sys_listxattr, "llistxattr" }, /* 233 */
{ 3, 0, sys_flistxattr, "flistxattr" }, /* 234 */
{ 3, TD, sys_flistxattr, "flistxattr" }, /* 234 */
{ 2, TF, sys_removexattr, "removexattr" }, /* 235 */
{ 2, TF, sys_removexattr, "lremovexattr" }, /* 236 */
{ 2, TD, sys_fremovexattr, "fremovexattr" }, /* 237 */
@ -280,15 +278,15 @@
{ 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 */
{ 5, TD, sys_fadvise64, "fadvise64" }, /* 250 */
{ 6, 0, NULL, NULL }, /* 251 */
{ 1, TP, sys_exit, "exit_group" }, /* 252 */
{ 4, 0, sys_lookup_dcookie, "lookup_dcookie"}, /* 253 */
{ 1, TD, sys_epoll_create, "epoll_create" }, /* 254 */
{ 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 255 */
{ 4, TD, sys_epoll_wait, "epoll_wait" }, /* 256 */
{ 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 257 */
{ 1, 0, printargs, "set_tid_address"}, /* 258 */
{ 1, 0, sys_set_tid_address, "set_tid_address"}, /* 258 */
{ 3, 0, sys_timer_create, "timer_create" }, /* 259 */
{ 4, 0, sys_timer_settime, "timer_settime" }, /* 260 */
{ 2, 0, sys_timer_gettime, "timer_gettime" }, /* 261 */
@ -302,8 +300,8 @@
{ 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, TD, sys_fadvise64_64, "fadvise64_64" }, /* 272 */
{ 5, 0, sys_vserver, "vserver" }, /* 273 */
{ 6, 0, sys_mbind, "mbind" }, /* 274 */
{ 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 275 */
{ 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 276 */
@ -313,24 +311,24 @@
{ 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 280 */
{ 2, 0, sys_mq_notify, "mq_notify" }, /* 281 */
{ 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 282 */
{ 5, 0, printargs, "sys_kexec_load" }, /* 283 */
{ 5, TP, sys_waitid, "waitid", SYS_waitid }, /* 284 */
{ 5, 0, printargs, "SYS_285" }, /* 285 */
{ 5, 0, printargs, "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 */
{ 4, 0, sys_kexec_load, "kexec_load" }, /* 283 */
{ 5, TP, sys_waitid, "waitid", }, /* 284 */
{ 6, 0, NULL, NULL }, /* 285 */
{ 5, 0, sys_add_key, "add_key" }, /* 286 */
{ 4, 0, sys_request_key, "request_key" }, /* 287 */
{ 5, 0, sys_keyctl, "keyctl" }, /* 288 */
{ 3, 0, sys_ioprio_set, "ioprio_set" }, /* 289 */
{ 2, 0, sys_ioprio_get, "ioprio_get" }, /* 290 */
{ 0, TD, sys_inotify_init, "inotify_init" }, /* 291 */
{ 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 292 */
{ 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 293 */
{ 4, 0, printargs, "migrate_pages" }, /* 294 */
{ 4, 0, sys_migrate_pages, "migrate_pages" }, /* 294 */
{ 4, TD|TF, sys_openat, "openat" }, /* 295 */
{ 3, TD|TF, sys_mkdirat, "mkdirat" }, /* 296 */
{ 4, TD|TF, sys_mknodat, "mknodat" }, /* 297 */
{ 5, TD|TF, sys_fchownat, "fchownat" }, /* 298 */
{ 3, TD|TF, sys_futimesat, "futimesat" }, /* 299 */
{ 4, TD|TD, sys_newfstatat, "fstatat64" }, /* 300 */
{ 4, TD|TF, 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 */
@ -341,100 +339,100 @@
{ 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 */
{ 2, 0, sys_set_robust_list, "set_robust_list" }, /* 311 */
{ 3, 0, sys_get_robust_list, "get_robust_list" }, /* 312 */
{ 6, TD, sys_splice, "splice" }, /* 313 */
{ 4, TD, sys_sync_file_range, "sync_file_range" }, /* 314 */
{ 4, TD, sys_tee, "tee" }, /* 315 */
{ 4, TD, sys_vmsplice, "vmsplice" }, /* 316 */
{ 6, 0, sys_move_pages, "move_pages" }, /* 317 */
{ 3, 0, sys_getcpu, "getcpu" }, /* 318 */
{ 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 319 */
{ 6, 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 */
{ 6, TD, 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 */
{ 1, TD, sys_epoll_create1, "epoll_create1" }, /* 329 */
{ 3, TD, sys_dup3, "dup3" }, /* 330 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 331 */
{ 1, TD, printargs, "inotify_init1" }, /* 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 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 332 */
{ 5, TD, sys_preadv, "preadv" }, /* 333 */
{ 5, TD, sys_pwritev, "pwritev" }, /* 334 */
{ 4, TP|TS, sys_rt_tgsigqueueinfo, "rt_tgsigqueueinfo"}, /* 335 */
{ 5, TD, sys_perf_event_open, "perf_event_open"}, /* 336 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 337 */
{ 2, TD, sys_fanotify_init, "fanotify_init" }, /* 338 */
{ 5, TD|TF, sys_fanotify_mark, "fanotify_mark" }, /* 339 */
{ 4, 0, sys_prlimit64, "prlimit64" }, /* 340 */
{ 5, TD|TF, sys_name_to_handle_at, "name_to_handle_at"}, /* 341 */
{ 3, TD, sys_open_by_handle_at, "open_by_handle_at"}, /* 342 */
{ 2, 0, sys_clock_adjtime, "clock_adjtime" }, /* 343 */
{ 1, TD, sys_syncfs, "syncfs" }, /* 344 */
{ 4, TN, sys_sendmmsg, "sendmmsg" }, /* 345 */
{ 2, TD, sys_setns, "setns" }, /* 346 */
{ 6, 0, sys_process_vm_readv, "process_vm_readv" }, /* 347 */
{ 6, 0, sys_process_vm_writev, "process_vm_writev" }, /* 348 */
{ 5, 0, NULL, NULL }, /* 349 */
{ 5, 0, NULL, NULL }, /* 350 */
{ 5, 0, NULL, NULL }, /* 351 */
{ 5, 0, NULL, NULL }, /* 352 */
{ 5, 0, NULL, NULL }, /* 353 */
{ 5, 0, NULL, NULL }, /* 354 */
{ 5, 0, NULL, NULL }, /* 355 */
{ 5, 0, NULL, NULL }, /* 356 */
{ 5, 0, NULL, NULL }, /* 357 */
{ 5, 0, NULL, NULL }, /* 358 */
{ 5, 0, NULL, NULL }, /* 359 */
{ 5, 0, NULL, NULL }, /* 360 */
{ 5, 0, NULL, NULL }, /* 361 */
{ 5, 0, NULL, NULL }, /* 362 */
{ 5, 0, NULL, NULL }, /* 363 */
{ 5, 0, NULL, NULL }, /* 364 */
{ 5, 0, NULL, NULL }, /* 365 */
{ 5, 0, NULL, NULL }, /* 366 */
{ 5, 0, NULL, NULL }, /* 367 */
{ 5, 0, NULL, NULL }, /* 368 */
{ 5, 0, NULL, NULL }, /* 369 */
{ 5, 0, NULL, NULL }, /* 370 */
{ 5, 0, NULL, NULL }, /* 371 */
{ 5, 0, NULL, NULL }, /* 372 */
{ 5, 0, NULL, NULL }, /* 373 */
{ 5, 0, NULL, NULL }, /* 374 */
{ 5, 0, NULL, NULL }, /* 375 */
{ 5, 0, NULL, NULL }, /* 376 */
{ 5, 0, NULL, NULL }, /* 377 */
{ 5, 0, NULL, NULL }, /* 378 */
{ 5, 0, NULL, NULL }, /* 379 */
{ 5, 0, NULL, NULL }, /* 380 */
{ 5, 0, NULL, NULL }, /* 381 */
{ 5, 0, NULL, NULL }, /* 382 */
{ 5, 0, NULL, NULL }, /* 383 */
{ 5, 0, NULL, NULL }, /* 384 */
{ 5, 0, NULL, NULL }, /* 385 */
{ 5, 0, NULL, NULL }, /* 386 */
{ 5, 0, NULL, NULL }, /* 387 */
{ 5, 0, NULL, NULL }, /* 388 */
{ 5, 0, NULL, NULL }, /* 389 */
{ 5, 0, NULL, NULL }, /* 390 */
{ 5, 0, NULL, NULL }, /* 391 */
{ 5, 0, NULL, NULL }, /* 392 */
{ 5, 0, NULL, NULL }, /* 393 */
{ 5, 0, NULL, NULL }, /* 394 */
{ 5, 0, NULL, NULL }, /* 395 */
{ 5, 0, NULL, NULL }, /* 396 */
{ 5, 0, NULL, NULL }, /* 397 */
{ 5, 0, NULL, NULL }, /* 398 */
{ 5, 0, NULL, NULL }, /* 399 */
#if SYS_socket_subcall != 400
#error fix me
#endif
{ 8, 0, printargs, "socket_subcall"}, /* 400 */
{ 6, 0, printargs, "socket_subcall"}, /* 400 */
{ 3, TN, sys_socket, "socket" }, /* 401 */
{ 3, TN, sys_bind, "bind" }, /* 402 */
{ 3, TN, sys_connect, "connect" }, /* 403 */
@ -443,42 +441,43 @@
{ 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 */
{ 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 */
{ 3, 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 != 419
#if SYS_ipc_subcall != 420
#error fix me
#endif
{ 4, 0, printargs, "ipc_subcall" }, /* 419 */
{ 4, TI, sys_semop, "semop" }, /* 420 */
{ 4, TI, sys_semget, "semget" }, /* 421 */
{ 4, TI, sys_semctl, "semctl" }, /* 422 */
{ 5, TI, sys_semtimedop, "semtimedop" }, /* 423 */
{ 4, 0, printargs, "ipc_subcall" }, /* 424 */
{ 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, TI, sys_msgsnd, "msgsnd" }, /* 430 */
{ 4, TI, sys_msgrcv, "msgrcv" }, /* 431 */
{ 4, TI, sys_msgget, "msgget" }, /* 432 */
{ 4, TI, sys_msgctl, "msgctl" }, /* 433 */
{ 4, 0, printargs, "ipc_subcall" }, /* 434 */
{ 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, TI, sys_shmat, "shmat" }, /* 440 */
{ 4, TI, sys_shmdt, "shmdt" }, /* 441 */
{ 4, TI, sys_shmget, "shmget" }, /* 442 */
{ 4, TI, sys_shmctl, "shmctl" }, /* 443 */
{ 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 */

View File

@ -1 +0,0 @@
Makefile

File diff suppressed because it is too large Load Diff

66
linux/ia64/ioctlent.h.in Normal file
View File

@ -0,0 +1,66 @@
{"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", "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},
{"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},

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,4 @@
#! /bin/sh
#
# Copyright (c) 2001 Wichert Akkerman <wichert@cistron.nl>
# All rights reserved.
#
@ -24,9 +23,6 @@
# 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
@ -57,17 +53,18 @@ s/^\(.*\):[[:space:]]*#[[:space:]]*define[[:space:]]*\([A-Z0-9_]*\)[[:space:]]*\
>> ioctls.h
}
> ioctls.h
lookup_ioctls 03 linux/hdreg.h
lookup_ioctls 22 scsi/sg.h
lookup_ioctls 46 linux/fb.h
lookup_ioctls 4B linux/kd.h
lookup_ioctls 4C linux/loop.h
lookup_ioctls 53 linux/cdrom.h scsi/scsi.h scsi/scsi_ioctl.h
lookup_ioctls 54 $asm/ioctls.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 linux/sockios.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
@ -79,9 +76,11 @@ if [ -e $dir/Kbuild ]; then
grep -v '^asm-'
echo "$asm/* asm-generic/*"
)
# special case: some headers aren't exported directly
files="${files} media/* net/bluetooth/* pcmcia/*"
else
# older kernel so just assume some headers
files="linux/* $asm/* scsi/* sound/*"
files="linux/* $asm/* asm-generic/* scsi/* sound/*"
fi
# Build the list of all ioctls
@ -98,7 +97,6 @@ regexp='^[[:space:]]*#[[:space:]]*define[[:space:]]\+[A-Z][A-Z0-9_]*[[:space:]]\
# 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)

View File

@ -22,30 +22,28 @@ struct ioctlent ioctls[] = {
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);
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 */
/* ioctl_lookup() only looks at the NR and TYPE bits atm. */
for (i = 0; i < nioctls; i++)
ioctls[i].code &= ~_IOC_DIRMASK;
#endif
ioctls[i].code &= (_IOC_NRMASK << _IOC_NRSHIFT) |
(_IOC_TYPEMASK << _IOC_TYPESHIFT);
qsort(ioctls, nioctls, sizeof(ioctls[0]), compare);
puts ("\t/* Generated by ioctlsort */");
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",
strcmp(ioctls[i].name, ioctls[i-1].name))
printf("\t{\"%s\",\t\"%s\",\t%#06lx},\n",
ioctls[i].header, ioctls[i].name, ioctls[i].code);
return 0;

1
linux/m68k/ioctlent.h.in Normal file
View File

@ -0,0 +1 @@
#include "../i386/ioctlent.h.in"

View File

@ -24,22 +24,20 @@
* 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 */
{ 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", SYS_wait4 }, /* 7 */
{ 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", SYS_execve }, /* 11 */
{ 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 */
@ -52,7 +50,7 @@
{ 5, TF, sys_mount, "mount" }, /* 21 */
{ 1, TF, sys_umount, "oldumount" }, /* 22 */
{ 1, 0, sys_setuid, "setuid" }, /* 23 */
{ 0, 0, sys_getuid, "getuid" }, /* 24 */
{ 0, NF, sys_getuid, "getuid" }, /* 24 */
{ 1, 0, sys_stime, "stime" }, /* 25 */
{ 4, 0, sys_ptrace, "ptrace" }, /* 26 */
{ 1, 0, sys_alarm, "alarm" }, /* 27 */
@ -75,10 +73,10 @@
{ 0, 0, sys_prof, "prof" }, /* 44 */
{ 1, 0, sys_brk, "brk" }, /* 45 */
{ 1, 0, sys_setgid, "setgid" }, /* 46 */
{ 0, 0, sys_getgid, "getgid" }, /* 47 */
{ 0, NF, sys_getgid, "getgid" }, /* 47 */
{ 3, TS, sys_signal, "signal" }, /* 48 */
{ 0, 0, sys_geteuid, "geteuid" }, /* 49 */
{ 0, 0, sys_getegid, "getegid" }, /* 50 */
{ 0, NF, sys_geteuid, "geteuid" }, /* 49 */
{ 0, NF, sys_getegid, "getegid" }, /* 50 */
{ 1, TF, sys_acct, "acct" }, /* 51 */
{ 2, TF, sys_umount2, "umount" }, /* 52 */
{ 0, 0, sys_lock, "lock" }, /* 53 */
@ -96,8 +94,8 @@
{ 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 */
{ 0, TS, sys_siggetmask, "sgetmask" }, /* 68 */
{ 1, TS, sys_sigsetmask, "ssetmask" }, /* 69 */
{ 2, 0, sys_setreuid, "setreuid" }, /* 70 */
{ 2, 0, sys_setregid, "setregid" }, /* 71 */
{ 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
@ -115,10 +113,10 @@
{ 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 */
{ 2, TF, sys_swapon, "swapon" }, /* 87 */
{ 4, 0, sys_reboot, "reboot" }, /* 88 */
{ 3, 0, sys_readdir, "readdir" }, /* 89 */
{ 6, 0, sys_old_mmap, "old_mmap" }, /* 90 */
{ 6, TD, sys_old_mmap, "old_mmap" }, /* 90 */
{ 2, 0, sys_munmap, "munmap" }, /* 91 */
{ 2, TF, sys_truncate, "truncate" }, /* 92 */
{ 2, 0, sys_ftruncate, "ftruncate" }, /* 93 */
@ -130,7 +128,7 @@
{ 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 */
{ 2, 0, sys_socketcall, "socketcall" }, /* 102 */
{ 3, 0, sys_syslog, "syslog" }, /* 103 */
{ 3, 0, sys_setitimer, "setitimer" }, /* 104 */
{ 2, 0, sys_getitimer, "getitimer" }, /* 105 */
@ -142,13 +140,13 @@
{ 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 */
{ 4, TP, sys_wait4, "wait4" }, /* 114 */
{ 1, TF, 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 */
{ 6, TI, sys_ipc, "ipc" }, /* 117 */
{ 1, TD, sys_fsync, "fsync" }, /* 118 */
{ 0, TS, sys_sigreturn, "sigreturn" }, /* 119 */
{ 5, TP, sys_clone, "clone" }, /* 120 */
{ 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
{ 1, 0, sys_uname, "uname" }, /* 122 */
{ 4, 0, sys_cacheflush, "cacheflush" }, /* 123 */
@ -163,24 +161,24 @@
{ 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 */
{ 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 */
{ 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */
{ 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */
{ 5, 0, sys_llseek, "_llseek" }, /* 140 */
{ 3, 0, sys_getdents, "getdents" }, /* 141 */
{ 5, 0, sys_select, "select" }, /* 142 */
{ 2, 0, sys_flock, "flock" }, /* 143 */
{ 3, 0, sys_msync, "msync" }, /* 144 */
{ 3, 0, sys_readv, "readv", SYS_readv }, /* 145 */
{ 3, 0, sys_writev, "writev", SYS_writev }, /* 146 */
{ 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 */
{ 1, 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 */
@ -191,25 +189,25 @@
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
{ 4, 0, sys_mremap, "mremap" }, /* 163 */
{ 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_nfsservctl, "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 */
{ 0, TS, sys_rt_sigreturn, "rt_sigreturn" }, /* 173 */
{ 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 174 */
{ 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 175 */
{ 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 176 */
{ 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"}, /* 177 */
{ 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"}, /* 178 */
{ 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 179 */
{ 5, TF, sys_pread, "pread64", SYS_read }, /* 180 */
{ 5, TF, sys_pwrite, "pwrite64", SYS_write }, /* 181 */
{ 5, TF, sys_pread, "pread64" }, /* 180 */
{ 5, TF, sys_pwrite, "pwrite64" }, /* 181 */
{ 3, TF, sys_chown, "lchown" }, /* 182 */
{ 2, TF, sys_getcwd, "getcwd" }, /* 183 */
{ 2, 0, sys_capget, "capget" }, /* 184 */
@ -218,19 +216,19 @@
{ 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 */
{ 0, TP, sys_vfork, "vfork" }, /* 190 */
{ 2, 0, sys_getrlimit, "getrlimit" }, /* 191 */
{ 6, 0, sys_mmap, "mmap2" }, /* 192 */
{ 6, TD, 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 */
{ 0, NF, sys_getuid, "getuid32" }, /* 199 */
{ 0, NF, sys_getgid, "getgid32" }, /* 200 */
{ 0, NF, sys_geteuid, "geteuid32" }, /* 201 */
{ 0, NF, sys_geteuid, "getegid32" }, /* 202 */
{ 2, 0, sys_setreuid, "setreuid32" }, /* 203 */
{ 2, 0, sys_setregid, "setregid32" }, /* 204 */
{ 2, 0, sys_getgroups32, "getgroups32" }, /* 205 */
@ -243,28 +241,28 @@
{ 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 */
{ 1, NF, sys_setfsuid, "setfsuid32" }, /* 215 */
{ 1, NF, sys_setfsgid, "setfsgid32" }, /* 216 */
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
{ 5, 0, printargs, "SYS_218" }, /* 218 */
{ 5, 0, printargs, "SYS_219" }, /* 219 */
{ 5, 0, NULL, NULL }, /* 218 */
{ 5, 0, NULL, NULL }, /* 219 */
{ 3, TD, sys_getdents64, "getdents64" }, /* 220 */
{ 0, 0, printargs, "gettid" }, /* 221 */
{ 0, 0, sys_gettid, "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 */
{ 4, TD, sys_fgetxattr, "fgetxattr" }, /* 228 */
{ 3, TF, sys_listxattr, "listxattr" }, /* 229 */
{ 3, TF, sys_listxattr, "llistxattr" }, /* 230 */
{ 3, 0, sys_flistxattr, "flistxattr" }, /* 231 */
{ 3, TD, sys_flistxattr, "flistxattr" }, /* 231 */
{ 2, TF, sys_removexattr, "removexattr" }, /* 232 */
{ 2, TF, sys_removexattr, "lremovexattr" }, /* 233 */
{ 2, 0, sys_fremovexattr, "fremovexattr" }, /* 234 */
{ 2, TD, sys_fremovexattr, "fremovexattr" }, /* 234 */
{ 6, 0, sys_futex, "futex" }, /* 235 */
{ 4, TF, sys_sendfile64, "sendfile64" }, /* 236 */
{ 4, TD|TN, sys_sendfile64, "sendfile64" }, /* 236 */
{ 3, 0, sys_mincore, "mincore" }, /* 237 */
{ 3, 0, sys_madvise, "madvise" }, /* 238 */
{ 3, 0, sys_fcntl, "fcntl64" }, /* 239 */
@ -274,14 +272,14 @@
{ 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, TD, sys_fadvise64, "fadvise64" }, /* 246 */
{ 1, TP, sys_exit, "exit_group" }, /* 247 */
{ 4, 0, sys_lookup_dcookie, "lookup_dcookie"}, /* 248 */
{ 1, TD, sys_epoll_create, "epoll_create" }, /* 249 */
{ 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 250 */
{ 4, TD, sys_epoll_wait, "epoll_wait" }, /* 251 */
{ 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 252 */
{ 1, 0, printargs, "set_tid_address"}, /* 253 */
{ 1, 0, sys_set_tid_address, "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 */
@ -295,7 +293,7 @@
{ 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, TD, 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 */
@ -305,135 +303,134 @@
{ 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 */
{ 5, 0, printargs, "SYS_282" }, /* 282 */
{ 5, 0, printargs, "SYS_283" }, /* 283 */
{ 5, 0, printargs, "SYS_284" }, /* 284 */
{ 5, 0, printargs, "SYS_285" }, /* 285 */
{ 5, 0, printargs, "SYS_286" }, /* 286 */
{ 5, 0, printargs, "SYS_287" }, /* 287 */
{ 5, 0, printargs, "SYS_288" }, /* 288 */
{ 5, 0, printargs, "SYS_289" }, /* 289 */
{ 5, 0, printargs, "SYS_290" }, /* 290 */
{ 5, 0, printargs, "SYS_291" }, /* 291 */
{ 5, 0, printargs, "SYS_292" }, /* 292 */
{ 5, 0, printargs, "SYS_293" }, /* 293 */
{ 5, 0, printargs, "SYS_294" }, /* 294 */
{ 5, 0, printargs, "SYS_295" }, /* 295 */
{ 5, 0, printargs, "SYS_296" }, /* 296 */
{ 5, 0, printargs, "SYS_297" }, /* 297 */
{ 5, 0, printargs, "SYS_298" }, /* 298 */
{ 5, 0, printargs, "SYS_299" }, /* 299 */
{ 5, 0, printargs, "SYS_300" }, /* 300 */
{ 5, 0, printargs, "SYS_301" }, /* 301 */
{ 5, 0, printargs, "SYS_302" }, /* 302 */
{ 5, 0, printargs, "SYS_303" }, /* 303 */
{ 5, 0, printargs, "SYS_304" }, /* 304 */
{ 5, 0, printargs, "SYS_305" }, /* 305 */
{ 5, 0, printargs, "SYS_306" }, /* 306 */
{ 5, 0, printargs, "SYS_307" }, /* 307 */
{ 5, 0, printargs, "SYS_308" }, /* 308 */
{ 5, 0, printargs, "SYS_309" }, /* 309 */
{ 5, TP, sys_waitid, "waitid" }, /* 277 */
{ 5, 0, sys_vserver, "vserver" }, /* 278 */
{ 5, 0, sys_add_key, "add_key" }, /* 279 */
{ 5, 0, sys_request_key, "request_key" }, /* 280 */
{ 5, 0, sys_keyctl, "keyctl" }, /* 281 */
{ 3, 0, sys_ioprio_set, "ioprio_set" }, /* 282 */
{ 2, 0, sys_ioprio_get, "ioprio_get" }, /* 283 */
{ 0, TD, sys_inotify_init, "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, sys_migrate_pages, "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|TF, 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, sys_set_robust_list, "set_robust_list" }, /* 304 */
{ 3, 0, sys_get_robust_list, "get_robust_list" }, /* 305 */
{ 6, TD, sys_splice, "splice" }, /* 306 */
{ 4, TD, sys_sync_file_range, "sync_file_range" }, /* 307 */
{ 4, TD, sys_tee, "tee" }, /* 308 */
{ 4, TD, sys_vmsplice, "vmsplice" }, /* 309 */
{ 6, 0, sys_move_pages, "move_pages" }, /* 310 */
{ 5, 0, printargs, "SYS_311" }, /* 311 */
{ 5, 0, printargs, "SYS_312" }, /* 312 */
{ 5, 0, printargs, "SYS_313" }, /* 313 */
{ 5, 0, printargs, "SYS_314" }, /* 314 */
{ 5, 0, printargs, "SYS_315" }, /* 315 */
{ 5, 0, printargs, "SYS_316" }, /* 316 */
{ 5, 0, printargs, "SYS_317" }, /* 317 */
{ 5, 0, printargs, "SYS_318" }, /* 318 */
{ 5, 0, printargs, "SYS_319" }, /* 319 */
{ 5, 0, printargs, "SYS_320" }, /* 320 */
{ 5, 0, printargs, "SYS_321" }, /* 321 */
{ 5, 0, printargs, "SYS_322" }, /* 322 */
{ 5, 0, printargs, "SYS_323" }, /* 323 */
{ 5, 0, printargs, "SYS_324" }, /* 324 */
{ 5, 0, printargs, "SYS_325" }, /* 325 */
{ 5, 0, printargs, "SYS_326" }, /* 326 */
{ 5, 0, printargs, "SYS_327" }, /* 327 */
{ 5, 0, printargs, "SYS_328" }, /* 328 */
{ 5, 0, printargs, "SYS_329" }, /* 329 */
{ 5, 0, printargs, "SYS_330" }, /* 330 */
{ 5, 0, printargs, "SYS_331" }, /* 331 */
{ 5, 0, printargs, "SYS_332" }, /* 332 */
{ 5, 0, printargs, "SYS_333" }, /* 333 */
{ 5, 0, printargs, "SYS_334" }, /* 334 */
{ 5, 0, printargs, "SYS_335" }, /* 335 */
{ 5, 0, printargs, "SYS_336" }, /* 336 */
{ 5, 0, printargs, "SYS_337" }, /* 337 */
{ 5, 0, printargs, "SYS_338" }, /* 338 */
{ 5, 0, printargs, "SYS_339" }, /* 339 */
{ 5, 0, printargs, "SYS_340" }, /* 340 */
{ 5, 0, printargs, "SYS_341" }, /* 341 */
{ 5, 0, printargs, "SYS_342" }, /* 342 */
{ 5, 0, printargs, "SYS_343" }, /* 343 */
{ 5, 0, printargs, "SYS_344" }, /* 344 */
{ 5, 0, printargs, "SYS_345" }, /* 345 */
{ 5, 0, printargs, "SYS_346" }, /* 346 */
{ 5, 0, printargs, "SYS_347" }, /* 347 */
{ 5, 0, printargs, "SYS_348" }, /* 348 */
{ 5, 0, printargs, "SYS_349" }, /* 349 */
{ 5, 0, printargs, "SYS_350" }, /* 350 */
{ 5, 0, printargs, "SYS_351" }, /* 351 */
{ 5, 0, printargs, "SYS_352" }, /* 352 */
{ 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 */
{ 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 311 */
{ 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 312 */
{ 4, 0, sys_kexec_load, "kexec_load" }, /* 313 */
{ 3, 0, sys_getcpu, "getcpu" }, /* 314 */
{ 6, 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, TD, 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, TD, 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, sys_preadv, "preadv" }, /* 329 */
{ 5, TD, sys_pwritev, "pwritev" }, /* 330 */
{ 4, TP|TS, sys_rt_tgsigqueueinfo, "rt_tgsigqueueinfo"}, /* 331 */
{ 5, TD, sys_perf_event_open, "perf_event_open"}, /* 332 */
{ 0, 0, sys_get_thread_area, "get_thread_area"}, /* 333 */
{ 1, 0, sys_set_thread_area, "set_thread_area"}, /* 334 */
{ 6, 0, printargs, "atomic_comxchg_32"}, /* 335 */
{ 0, 0, printargs, "atomic_barrier"}, /* 336 */
{ 2, TD, sys_fanotify_init, "fanotify_init" }, /* 337 */
{ 5, TD|TF, sys_fanotify_mark, "fanotify_mark" }, /* 338 */
{ 4, 0, sys_prlimit64, "prlimit64" }, /* 339 */
{ 5, TD|TF, sys_name_to_handle_at, "name_to_handle_at"}, /* 340 */
{ 3, TD, sys_open_by_handle_at, "open_by_handle_at"}, /* 341 */
{ 2, 0, sys_clock_adjtime, "clock_adjtime" }, /* 342 */
{ 1, TD, sys_syncfs, "syncfs" }, /* 343 */
{ 2, TD, sys_setns, "setns" }, /* 344 */
{ 6, 0, sys_process_vm_readv, "process_vm_readv" }, /* 345 */
{ 6, 0, sys_process_vm_writev, "process_vm_writev" }, /* 346 */
{ 5, 0, NULL, NULL }, /* 347 */
{ 5, 0, NULL, NULL }, /* 348 */
{ 5, 0, NULL, NULL }, /* 349 */
{ 5, 0, NULL, NULL }, /* 350 */
{ 5, 0, NULL, NULL }, /* 351 */
{ 5, 0, NULL, NULL }, /* 352 */
{ 5, 0, NULL, NULL }, /* 353 */
{ 5, 0, NULL, NULL }, /* 354 */
{ 5, 0, NULL, NULL }, /* 355 */
{ 5, 0, NULL, NULL }, /* 356 */
{ 5, 0, NULL, NULL }, /* 357 */
{ 5, 0, NULL, NULL }, /* 358 */
{ 5, 0, NULL, NULL }, /* 359 */
{ 5, 0, NULL, NULL }, /* 360 */
{ 5, 0, NULL, NULL }, /* 361 */
{ 5, 0, NULL, NULL }, /* 362 */
{ 5, 0, NULL, NULL }, /* 363 */
{ 5, 0, NULL, NULL }, /* 364 */
{ 5, 0, NULL, NULL }, /* 365 */
{ 5, 0, NULL, NULL }, /* 366 */
{ 5, 0, NULL, NULL }, /* 367 */
{ 5, 0, NULL, NULL }, /* 368 */
{ 5, 0, NULL, NULL }, /* 369 */
{ 5, 0, NULL, NULL }, /* 370 */
{ 5, 0, NULL, NULL }, /* 371 */
{ 5, 0, NULL, NULL }, /* 372 */
{ 5, 0, NULL, NULL }, /* 373 */
{ 5, 0, NULL, NULL }, /* 374 */
{ 5, 0, NULL, NULL }, /* 375 */
{ 5, 0, NULL, NULL }, /* 376 */
{ 5, 0, NULL, NULL }, /* 377 */
{ 5, 0, NULL, NULL }, /* 378 */
{ 5, 0, NULL, NULL }, /* 379 */
{ 5, 0, NULL, NULL }, /* 380 */
{ 5, 0, NULL, NULL }, /* 381 */
{ 5, 0, NULL, NULL }, /* 382 */
{ 5, 0, NULL, NULL }, /* 383 */
{ 5, 0, NULL, NULL }, /* 384 */
{ 5, 0, NULL, NULL }, /* 385 */
{ 5, 0, NULL, NULL }, /* 386 */
{ 5, 0, NULL, NULL }, /* 387 */
{ 5, 0, NULL, NULL }, /* 388 */
{ 5, 0, NULL, NULL }, /* 389 */
{ 5, 0, NULL, NULL }, /* 390 */
{ 5, 0, NULL, NULL }, /* 391 */
{ 5, 0, NULL, NULL }, /* 392 */
{ 5, 0, NULL, NULL }, /* 393 */
{ 5, 0, NULL, NULL }, /* 394 */
{ 5, 0, NULL, NULL }, /* 395 */
{ 5, 0, NULL, NULL }, /* 396 */
{ 5, 0, NULL, NULL }, /* 397 */
{ 5, 0, NULL, NULL }, /* 398 */
{ 5, 0, NULL, NULL }, /* 399 */
#if SYS_socket_subcall != 400
#error fix me
#endif
{ 8, 0, printargs, "socket_subcall"}, /* 400 */
{ 6, 0, printargs, "socket_subcall"}, /* 400 */
{ 3, TN, sys_socket, "socket" }, /* 401 */
{ 3, TN, sys_bind, "bind" }, /* 402 */
{ 3, TN, sys_connect, "connect" }, /* 403 */
@ -442,42 +439,43 @@
{ 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 */
{ 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 */
{ 3, 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 != 419
#if SYS_ipc_subcall != 420
#error fix me
#endif
{ 4, 0, printargs, "ipc_subcall" }, /* 419 */
{ 4, TI, sys_semop, "semop" }, /* 420 */
{ 4, TI, sys_semget, "semget" }, /* 421 */
{ 4, TI, sys_semctl, "semctl" }, /* 422 */
{ 5, TI, sys_semtimedop, "semtimedop" }, /* 423 */
{ 4, 0, printargs, "ipc_subcall" }, /* 424 */
{ 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, TI, sys_msgsnd, "msgsnd" }, /* 430 */
{ 4, TI, sys_msgrcv, "msgrcv" }, /* 431 */
{ 4, TI, sys_msgget, "msgget" }, /* 432 */
{ 4, TI, sys_msgctl, "msgctl" }, /* 433 */
{ 4, 0, printargs, "ipc_subcall" }, /* 434 */
{ 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, TI, sys_shmat, "shmat" }, /* 440 */
{ 4, TI, sys_shmdt, "shmdt" }, /* 441 */
{ 4, TI, sys_shmget, "shmget" }, /* 442 */
{ 4, TI, sys_shmctl, "shmctl" }, /* 443 */
{ 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 */

View File

@ -0,0 +1 @@
#include "../i386/ioctlent.h.in"

View File

@ -0,0 +1,407 @@
/*
* Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
* Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
{ 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, NF, 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, NF, sys_getgid, "getgid" }, /* 47 */
{ 3, TS, sys_signal, "signal" }, /* 48 */
{ 0, NF, sys_geteuid, "geteuid" }, /* 49 */
{ 0, NF, 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, "sgetmask" }, /* 68 */
{ 1, TS, sys_sigsetmask, "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, "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 */
{ 2, TF, sys_swapon, "swapon" }, /* 87 */
{ 4, 0, sys_reboot, "reboot" }, /* 88 */
{ 3, 0, sys_readdir, "readdir" }, /* 89 */
{ 6, TD, sys_old_mmap, "old_mmap" }, /* 90 */
{ 2, 0, sys_munmap, "munmap" }, /* 91 */
{ 2, TF, sys_truncate, "truncate" }, /* 92 */
{ 2, 0, sys_ftruncate, "ftruncate" }, /* 93 */
{ 2, 0, sys_fchmod, "fchmod" }, /* 94 */
{ 3, 0, sys_fchown, "fchown" }, /* 95 */
{ 2, 0, sys_getpriority, "getpriority" }, /* 96 */
{ 3, 0, sys_setpriority, "setpriority" }, /* 97 */
{ 4, 0, sys_profil, "profil" }, /* 98 */
{ 2, TF, sys_statfs, "statfs" }, /* 99 */
{ 2, 0, sys_fstatfs, "fstatfs" }, /* 100 */
{ 3, 0, sys_ioperm, "ioperm" }, /* 101 */
{ 2, 0, sys_socketcall, "socketcall" }, /* 102 */
{ 3, 0, sys_syslog, "syslog" }, /* 103 */
{ 3, 0, sys_setitimer, "setitimer" }, /* 104 */
{ 2, 0, sys_getitimer, "getitimer" }, /* 105 */
{ 2, TF, sys_stat, "stat" }, /* 106 */
{ 2, TF, sys_lstat, "lstat" }, /* 107 */
{ 2, 0, sys_fstat, "fstat" }, /* 108 */
{ 1, 0, sys_olduname, "olduname" }, /* 109 */
{ 1, 0, sys_iopl, "iopl" }, /* 110 */
{ 0, 0, sys_vhangup, "vhangup" }, /* 111 */
{ 0, 0, sys_idle, "idle" }, /* 112 */
{ 1, 0, sys_vm86old, "vm86old" }, /* 113 */
{ 4, TP, sys_wait4, "wait4" }, /* 114 */
{ 1, TF, sys_swapoff, "swapoff" }, /* 115 */
{ 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
{ 6, TI, sys_ipc, "ipc" }, /* 117 */
{ 1, TD, sys_fsync, "fsync" }, /* 118 */
{ 0, TS, sys_sigreturn, "sigreturn" }, /* 119 */
{ 5, TP, sys_clone, "clone" }, /* 120 */
{ 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
{ 1, 0, sys_uname, "uname" }, /* 122 */
{ 3, 0, sys_modify_ldt, "modify_ldt" }, /* 123 */
{ 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */
{ 3, 0, sys_mprotect, "mprotect" }, /* 125 */
{ 3, 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, NF, sys_setfsuid, "setfsuid" }, /* 138 */
{ 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */
{ 5, 0, sys_llseek, "_llseek" }, /* 140 */
{ 3, 0, sys_getdents, "getdents" }, /* 141 */
{ 5, 0, sys_select, "select" }, /* 142 */
{ 2, 0, sys_flock, "flock" }, /* 143 */
{ 3, 0, sys_msync, "msync" }, /* 144 */
{ 3, 0, sys_readv, "readv" }, /* 145 */
{ 3, 0, sys_writev, "writev" }, /* 146 */
{ 1, 0, sys_getsid, "getsid" }, /* 147 */
{ 1, 0, sys_fdatasync, "fdatasync" }, /* 148 */
{ 1, 0, sys_sysctl, "_sysctl" }, /* 149 */
{ 2, 0, sys_mlock, "mlock" }, /* 150 */
{ 2, 0, sys_munlock, "munlock" }, /* 151 */
{ 1, 0, sys_mlockall, "mlockall" }, /* 152 */
{ 0, 0, sys_munlockall, "munlockall" }, /* 153 */
{ 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, sys_vm86, "vm86" }, /* 166 */
{ 5, 0, sys_query_module, "query_module" }, /* 167 */
{ 3, 0, sys_poll, "poll" }, /* 168 */
{ 3, 0, sys_nfsservctl, "nfsservctl" }, /* 169 */
{ 3, 0, sys_setresgid, "setresgid" }, /* 170 */
{ 3, 0, sys_getresgid, "getresgid" }, /* 171 */
{ 5, 0, sys_prctl, "prctl" }, /* 172 */
{ 0, TS, sys_rt_sigreturn, "rt_sigreturn" }, /* 173 */
{ 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 174 */
{ 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 175 */
{ 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 176 */
{ 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"}, /* 177 */
{ 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"}, /* 178 */
{ 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 179 */
{ 5, TF, sys_pread, "pread64" }, /* 180 */
{ 5, TF, sys_pwrite, "pwrite64" }, /* 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, TD, 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, NF, sys_getuid, "getuid32" }, /* 199 */
{ 0, NF, sys_getgid, "getgid32" }, /* 200 */
{ 0, NF, sys_geteuid, "geteuid32" }, /* 201 */
{ 0, NF, 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, NF, sys_setfsuid, "setfsuid32" }, /* 215 */
{ 1, NF, sys_setfsgid, "setfsgid32" }, /* 216 */
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
{ 3, 0, sys_mincore, "mincore" }, /* 218 */
{ 3, 0, sys_madvise, "madvise" }, /* 219 */
{ 3, TD, sys_getdents64, "getdents64" }, /* 220 */
{ 3, 0, sys_fcntl, "fcntl64" }, /* 221 */
{ 4, 0, NULL, NULL }, /* 222 */
{ 4, 0, NULL, NULL }, /* 223 */
{ 0, 0, sys_gettid, "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, TD, sys_fgetxattr, "fgetxattr" }, /* 231 */
{ 3, TF, sys_listxattr, "listxattr" }, /* 232 */
{ 3, TF, sys_listxattr, "llistxattr" }, /* 233 */
{ 3, TD, 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, TD, sys_fadvise64, "fadvise64" }, /* 250 */
{ 0, 0, NULL, NULL }, /* 251 */
{ 1, TP, sys_exit, "exit_group" }, /* 252 */
{ 4, 0, sys_lookup_dcookie, "lookup_dcookie"}, /* 253 */
{ 1, TD, sys_epoll_create, "epoll_create" }, /* 254 */
{ 4, TD, sys_epoll_ctl, "epoll_ctl" }, /* 255 */
{ 4, TD, sys_epoll_wait, "epoll_wait" }, /* 256 */
{ 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 257 */
{ 1, 0, sys_set_tid_address, "set_tid_address"}, /* 258 */
{ 3, 0, sys_timer_create, "timer_create" }, /* 259 */
{ 4, 0, sys_timer_settime, "timer_settime" }, /* 260 */
{ 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, TD, sys_fadvise64_64, "fadvise64_64" }, /* 272 */
{ 5, 0, sys_vserver, "vserver" }, /* 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 */
{ 4, 0, sys_kexec_load, "kexec_load" }, /* 283 */
{ 5, TP, sys_waitid, "waitid" }, /* 284 */
{ 5, 0, NULL, NULL }, /* 285 */
{ 5, 0, sys_add_key, "add_key" }, /* 286 */
{ 4, 0, sys_request_key, "request_key" }, /* 287 */
{ 5, 0, sys_keyctl, "keyctl" }, /* 288 */
{ 3, 0, sys_ioprio_set, "ioprio_set" }, /* 289 */
{ 2, 0, sys_ioprio_get, "ioprio_get" }, /* 290 */
{ 0, TD, sys_inotify_init, "inotify_init" }, /* 291 */
{ 3, TD, sys_inotify_add_watch, "inotify_add_watch" }, /* 292 */
{ 2, TD, sys_inotify_rm_watch, "inotify_rm_watch" }, /* 293 */
{ 4, 0, sys_migrate_pages, "migrate_pages" }, /* 294 */
{ 4, 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|TF, 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_set_robust_list, "set_robust_list" }, /* 311 */
{ 3, 0, sys_get_robust_list, "get_robust_list" }, /* 312 */
{ 6, TD, sys_splice, "splice" }, /* 313 */
{ 4, TD, sys_sync_file_range, "sync_file_range"}, /* 314 */
{ 4, TD, sys_tee, "tee" }, /* 315 */
{ 5, TD, sys_vmsplice, "vmsplice" }, /* 316 */
{ 6, 0, sys_move_pages, "move_pages" }, /* 317 */
{ 3, 0, sys_getcpu, "getcpu" }, /* 318 */
{ 6, TD, sys_epoll_pwait, "epoll_pwait" }, /* 319 */
{ 4, TD|TF, sys_utimensat, "utimensat" }, /* 320 */
{ 3, TD|TS, sys_signalfd, "signalfd" }, /* 321 */
{ 2, TD, sys_timerfd_create, "timerfd_create" }, /* 322 */
{ 1, TD, sys_eventfd, "eventfd" }, /* 323 */
{ 6, 0, printargs, "fallocate" }, /* 324 */
{ 5, TI, sys_semtimedop, "semtimedop" }, /* 325 */
{ 4, TD, sys_timerfd_settime, "timerfd_settime" }, /* 326 */
{ 2, TD, sys_timerfd_gettime, "timerfd_gettime" }, /* 327 */
{ 4, TI, sys_semctl, "semctl" }, /* 328 */
{ 4, TI, sys_semget, "semget" }, /* 329 */
{ 4, TI, sys_semop, "semop" }, /* 330 */
{ 4, TI, sys_msgctl, "msgctl" }, /* 331 */
{ 4, TI, sys_msgget, "msgget" }, /* 332 */
{ 4, TI, sys_msgrcv, "msgrcv" }, /* 333 */
{ 4, TI, sys_msgsnd, "msgsnd" }, /* 334 */
{ 4, TI, sys_shmat, "shmat" }, /* 335 */
{ 4, TI, sys_shmctl, "shmctl" }, /* 336 */
{ 4, TI, sys_shmdt, "shmdt" }, /* 337 */
{ 4, TI, sys_shmget, "shmget" }, /* 338 */
{ 4, TD|TS, printargs, "signalfd4" }, /* 339 */
{ 2, TD, printargs, "eventfd2" }, /* 340 */
{ 1, TD, printargs, "epoll_create1" }, /* 341 */
{ 3, TD, printargs, "dup3" }, /* 342 */
{ 2, TD, printargs, "pipe2" }, /* 343 */
{ 1, TD, printargs, "inotify_init1" }, /* 344 */
{ 3, TN, sys_socket, "socket" }, /* 345 */
{ 4, TN, sys_socketpair, "socketpair" }, /* 346 */
{ 3, TN, sys_bind, "bind" }, /* 347 */
{ 2, TN, sys_listen, "listen" }, /* 348 */
{ 3, TN, sys_accept, "accept" }, /* 349 */
{ 3, TN, sys_connect, "connect" }, /* 350 */
{ 3, TN, sys_getsockname, "getsockname" }, /* 351 */
{ 3, TN, sys_getpeername, "getpeername" }, /* 352 */
{ 6, TN, sys_sendto, "sendto" }, /* 353 */
{ 4, TN, sys_send, "send" }, /* 354 */
{ 6, TN, sys_recvfrom, "recvfrom" }, /* 355 */
{ 4, TN, sys_recv, "recv" }, /* 356 */
{ 5, TN, sys_setsockopt, "setsockopt" }, /* 357 */
{ 5, TN, sys_getsockopt, "getsockopt" }, /* 358 */
{ 2, TN, sys_shutdown, "shutdown" }, /* 359 */
{ 3, TN, sys_sendmsg, "sendmsg" }, /* 360 */
{ 5, TN, sys_recvmsg, "recvmsg" }, /* 361 */
{ 4, TN, sys_accept4, "accept4" }, /* 362 */
{ 5, TD, sys_preadv, "preadv" }, /* 363 */
{ 5, TD, sys_pwritev, "pwritev" }, /* 364 */
{ 4, TP|TS, sys_rt_tgsigqueueinfo, "rt_tgsigqueueinfo" }, /* 365 */
{ 5, TN, sys_perf_event_open, "perf_event_open" }, /* 366 */
{ 5, TN, printargs, "recvmmsg" }, /* 367 */
{ 2, TD, sys_fanotify_init, "fanotify_init" }, /* 368 */
{ 5, TD|TF, sys_fanotify_mark, "fanotify_mark" }, /* 369 */
{ 4, 0, sys_prlimit64, "prlimit64" }, /* 370 */
{ 5, TD|TF, sys_name_to_handle_at, "name_to_handle_at"}, /* 371 */
{ 3, TD, sys_open_by_handle_at, "open_by_handle_at"}, /* 372 */
{ 2, 0, sys_clock_adjtime, "clock_adjtime" }, /* 373 */
{ 1, TD, sys_syncfs, "syncfs" }, /* 374 */
{ 2, TD, sys_setns, "setns" }, /* 375 */
{ 4, TN, sys_sendmmsg, "sendmmsg" }, /* 376 */
{ 6, 0, sys_process_vm_readv, "process_vm_readv" }, /* 377 */
{ 6, 0, sys_process_vm_writev, "process_vm_writev" }, /* 378 */

View File

@ -1 +0,0 @@
Makefile

View File

@ -1,838 +0,0 @@
{"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},

59
linux/mips/ioctlent.h.in Normal file
View File

@ -0,0 +1,59 @@
{"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", "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},

View File

@ -26,8 +26,6 @@
# 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'

File diff suppressed because it is too large Load Diff

278
linux/mtd-abi.h Normal file
View File

@ -0,0 +1,278 @@
/*
* Copyright © 1999-2010 David Woodhouse <dwmw2@infradead.org> et al.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#ifndef __MTD_ABI_H__
#define __MTD_ABI_H__
#include <linux/types.h>
struct erase_info_user {
__u32 start;
__u32 length;
};
struct erase_info_user64 {
__u64 start;
__u64 length;
};
struct mtd_oob_buf {
__u32 start;
__u32 length;
unsigned char *ptr;
};
struct mtd_oob_buf64 {
__u64 start;
__u32 pad;
__u32 length;
__u64 usr_ptr;
};
/**
* MTD operation modes
*
* @MTD_OPS_PLACE_OOB: OOB data are placed at the given offset (default)
* @MTD_OPS_AUTO_OOB: OOB data are automatically placed at the free areas
* which are defined by the internal ecclayout
* @MTD_OPS_RAW: data are transferred as-is, with no error correction;
* this mode implies %MTD_OPS_PLACE_OOB
*
* These modes can be passed to ioctl(MEMWRITE) and are also used internally.
* See notes on "MTD file modes" for discussion on %MTD_OPS_RAW vs.
* %MTD_FILE_MODE_RAW.
*/
enum {
MTD_OPS_PLACE_OOB = 0,
MTD_OPS_AUTO_OOB = 1,
MTD_OPS_RAW = 2,
};
/**
* struct mtd_write_req - data structure for requesting a write operation
*
* @start: start address
* @len: length of data buffer
* @ooblen: length of OOB buffer
* @usr_data: user-provided data buffer
* @usr_oob: user-provided OOB buffer
* @mode: MTD mode (see "MTD operation modes")
* @padding: reserved, must be set to 0
*
* This structure supports ioctl(MEMWRITE) operations, allowing data and/or OOB
* writes in various modes. To write to OOB-only, set @usr_data == NULL, and to
* write data-only, set @usr_oob == NULL. However, setting both @usr_data and
* @usr_oob to NULL is not allowed.
*/
struct mtd_write_req {
__u64 start;
__u64 len;
__u64 ooblen;
__u64 usr_data;
__u64 usr_oob;
__u8 mode;
__u8 padding[7];
};
#define MTD_ABSENT 0
#define MTD_RAM 1
#define MTD_ROM 2
#define MTD_NORFLASH 3
#define MTD_NANDFLASH 4
#define MTD_DATAFLASH 6
#define MTD_UBIVOLUME 7
#define MTD_MLCNANDFLASH 8
#define MTD_WRITEABLE 0x400 /* Device is writeable */
#define MTD_BIT_WRITEABLE 0x800 /* Single bits can be flipped */
#define MTD_NO_ERASE 0x1000 /* No erase necessary */
#define MTD_POWERUP_LOCK 0x2000 /* Always locked after reset */
/* Some common devices / combinations of capabilities */
#define MTD_CAP_ROM 0
#define MTD_CAP_RAM (MTD_WRITEABLE | MTD_BIT_WRITEABLE | MTD_NO_ERASE)
#define MTD_CAP_NORFLASH (MTD_WRITEABLE | MTD_BIT_WRITEABLE)
#define MTD_CAP_NANDFLASH (MTD_WRITEABLE)
/* Obsolete ECC byte placement modes (used with obsolete MEMGETOOBSEL) */
#define MTD_NANDECC_OFF 0 // Switch off ECC (Not recommended)
#define MTD_NANDECC_PLACE 1 // Use the given placement in the structure (YAFFS1 legacy mode)
#define MTD_NANDECC_AUTOPLACE 2 // Use the default placement scheme
#define MTD_NANDECC_PLACEONLY 3 // Use the given placement in the structure (Do not store ecc result on read)
#define MTD_NANDECC_AUTOPL_USR 4 // Use the given autoplacement scheme rather than using the default
/* OTP mode selection */
#define MTD_OTP_OFF 0
#define MTD_OTP_FACTORY 1
#define MTD_OTP_USER 2
struct mtd_info_user {
__u8 type;
__u32 flags;
__u32 size; /* Total size of the MTD */
__u32 erasesize;
__u32 writesize;
__u32 oobsize; /* Amount of OOB data per block (e.g. 16) */
__u64 padding; /* Old obsolete field; do not use */
};
struct region_info_user {
__u32 offset; /* At which this region starts,
* from the beginning of the MTD */
__u32 erasesize; /* For this region */
__u32 numblocks; /* Number of blocks in this region */
__u32 regionindex;
};
struct otp_info {
__u32 start;
__u32 length;
__u32 locked;
};
/*
* Note, the following ioctl existed in the past and was removed:
* #define MEMSETOOBSEL _IOW('M', 9, struct nand_oobinfo)
* Try to avoid adding a new ioctl with the same ioctl number.
*/
/* Get basic MTD characteristics info (better to use sysfs) */
#define MEMGETINFO _IOR('M', 1, struct mtd_info_user)
/* Erase segment of MTD */
#define MEMERASE _IOW('M', 2, struct erase_info_user)
/* Write out-of-band data from MTD */
#define MEMWRITEOOB _IOWR('M', 3, struct mtd_oob_buf)
/* Read out-of-band data from MTD */
#define MEMREADOOB _IOWR('M', 4, struct mtd_oob_buf)
/* Lock a chip (for MTD that supports it) */
#define MEMLOCK _IOW('M', 5, struct erase_info_user)
/* Unlock a chip (for MTD that supports it) */
#define MEMUNLOCK _IOW('M', 6, struct erase_info_user)
/* Get the number of different erase regions */
#define MEMGETREGIONCOUNT _IOR('M', 7, int)
/* Get information about the erase region for a specific index */
#define MEMGETREGIONINFO _IOWR('M', 8, struct region_info_user)
/* Get info about OOB modes (e.g., RAW, PLACE, AUTO) - legacy interface */
#define MEMGETOOBSEL _IOR('M', 10, struct nand_oobinfo)
/* Check if an eraseblock is bad */
#define MEMGETBADBLOCK _IOW('M', 11, __kernel_loff_t)
/* Mark an eraseblock as bad */
#define MEMSETBADBLOCK _IOW('M', 12, __kernel_loff_t)
/* Set OTP (One-Time Programmable) mode (factory vs. user) */
#define OTPSELECT _IOR('M', 13, int)
/* Get number of OTP (One-Time Programmable) regions */
#define OTPGETREGIONCOUNT _IOW('M', 14, int)
/* Get all OTP (One-Time Programmable) info about MTD */
#define OTPGETREGIONINFO _IOW('M', 15, struct otp_info)
/* Lock a given range of user data (must be in mode %MTD_FILE_MODE_OTP_USER) */
#define OTPLOCK _IOR('M', 16, struct otp_info)
/* Get ECC layout (deprecated) */
#define ECCGETLAYOUT _IOR('M', 17, struct nand_ecclayout_user)
/* Get statistics about corrected/uncorrected errors */
#define ECCGETSTATS _IOR('M', 18, struct mtd_ecc_stats)
/* Set MTD mode on a per-file-descriptor basis (see "MTD file modes") */
#define MTDFILEMODE _IO('M', 19)
/* Erase segment of MTD (supports 64-bit address) */
#define MEMERASE64 _IOW('M', 20, struct erase_info_user64)
/* Write data to OOB (64-bit version) */
#define MEMWRITEOOB64 _IOWR('M', 21, struct mtd_oob_buf64)
/* Read data from OOB (64-bit version) */
#define MEMREADOOB64 _IOWR('M', 22, struct mtd_oob_buf64)
/* Check if chip is locked (for MTD that supports it) */
#define MEMISLOCKED _IOR('M', 23, struct erase_info_user)
/*
* Most generic write interface; can write in-band and/or out-of-band in various
* modes (see "struct mtd_write_req"). This ioctl is not supported for flashes
* without OOB, e.g., NOR flash.
*/
#define MEMWRITE _IOWR('M', 24, struct mtd_write_req)
/*
* Obsolete legacy interface. Keep it in order not to break userspace
* interfaces
*/
struct nand_oobinfo {
__u32 useecc;
__u32 eccbytes;
__u32 oobfree[8][2];
__u32 eccpos[32];
};
struct nand_oobfree {
__u32 offset;
__u32 length;
};
#define MTD_MAX_OOBFREE_ENTRIES 8
#define MTD_MAX_ECCPOS_ENTRIES 64
/*
* OBSOLETE: ECC layout control structure. Exported to user-space via ioctl
* ECCGETLAYOUT for backwards compatbility and should not be mistaken as a
* complete set of ECC information. The ioctl truncates the larger internal
* structure to retain binary compatibility with the static declaration of the
* ioctl. Note that the "MTD_MAX_..._ENTRIES" macros represent the max size of
* the user struct, not the MAX size of the internal struct nand_ecclayout.
*/
struct nand_ecclayout_user {
__u32 eccbytes;
__u32 eccpos[MTD_MAX_ECCPOS_ENTRIES];
__u32 oobavail;
struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES];
};
/**
* struct mtd_ecc_stats - error correction stats
*
* @corrected: number of corrected bits
* @failed: number of uncorrectable errors
* @badblocks: number of bad blocks in this partition
* @bbtblocks: number of blocks reserved for bad block tables
*/
struct mtd_ecc_stats {
__u32 corrected;
__u32 failed;
__u32 badblocks;
__u32 bbtblocks;
};
/*
* MTD file modes - for read/write access to MTD
*
* @MTD_FILE_MODE_NORMAL: OTP disabled, ECC enabled
* @MTD_FILE_MODE_OTP_FACTORY: OTP enabled in factory mode
* @MTD_FILE_MODE_OTP_USER: OTP enabled in user mode
* @MTD_FILE_MODE_RAW: OTP disabled, ECC disabled
*
* These modes can be set via ioctl(MTDFILEMODE). The mode mode will be retained
* separately for each open file descriptor.
*
* Note: %MTD_FILE_MODE_RAW provides the same functionality as %MTD_OPS_RAW -
* raw access to the flash, without error correction or autoplacement schemes.
* Wherever possible, the MTD_OPS_* mode will override the MTD_FILE_MODE_* mode
* (e.g., when using ioctl(MEMWRITE)), but in some cases, the MTD_FILE_MODE is
* used out of necessity (e.g., `write()', ioctl(MEMWRITEOOB64)).
*/
enum mtd_file_modes {
MTD_FILE_MODE_NORMAL = MTD_OTP_OFF,
MTD_FILE_MODE_OTP_FACTORY = MTD_OTP_FACTORY,
MTD_FILE_MODE_OTP_USER = MTD_OTP_USER,
MTD_FILE_MODE_RAW,
};
#endif /* __MTD_ABI_H__ */

View File

@ -1 +0,0 @@
Makefile

View File

@ -0,0 +1 @@
#include "../errnoent.h"

File diff suppressed because it is too large Load Diff

114
linux/powerpc/ioctlent.h.in Normal file
View File

@ -0,0 +1,114 @@
{"asm-generic/ioctls.h", "TCGETS", 0x5401},
{"asm-generic/ioctls.h", "TCSETS", 0x5402},
{"asm-generic/ioctls.h", "TCSETSW", 0x5403},
{"asm-generic/ioctls.h", "TCSETSF", 0x5404},
{"asm-generic/ioctls.h", "TCGETA", 0x5405},
{"asm-generic/ioctls.h", "TCSETA", 0x5406},
{"asm-generic/ioctls.h", "TCSETAW", 0x5407},
{"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/ioctls.h", "TIOCEXCL", 0x540c},
{"asm/ioctls.h", "TIOCNXCL", 0x540d},
{"asm/ioctls.h", "TIOCSCTTY", 0x540e},
{"asm-generic/ioctls.h", "TIOCGPGRP", 0x540f},
{"asm-generic/ioctls.h", "TIOCSPGRP", 0x5410},
{"asm-generic/ioctls.h", "TIOCOUTQ", 0x5411},
{"asm/ioctls.h", "TIOCSTI", 0x5412},
{"asm-generic/ioctls.h", "TIOCGWINSZ", 0x5413},
{"asm-generic/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-generic/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-generic/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", "TIOCSBRK", 0x5427},
{"asm/ioctls.h", "TIOCCBRK", 0x5428},
{"asm/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/ioctls.h", "TIOCGRS485", 0x542e},
{"asm/ioctls.h", "TIOCSRS485", 0x542f},
{"asm/ioctls.h", "TIOCGPTN", 0x5430},
{"asm/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/ioctls.h", "TIOCSIG", 0x5436},
{"asm-generic/ioctls.h", "FIONCLEX", 0x5450},
{"asm-generic/ioctls.h", "FIOCLEX", 0x5451},
{"asm-generic/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", "FIOQSIZE", 0x5460},
{"asm/ioctls.h", "FIOCLEX", 0x6601},
{"asm/ioctls.h", "FIONCLEX", 0x6602},
{"asm/ioctls.h", "FIOASYNC", 0x667d},
{"asm/ioctls.h", "FIONBIO", 0x667e},
{"asm/ioctls.h", "FIONREAD", 0x667f},
{"asm/ioctls.h", "FIOQSIZE", 0x6680},
{"asm/nvram.h", "IOC_NVRAM_GET_OFFSET", 0x7042},
{"asm/nvram.h", "IOC_NVRAM_SYNC", 0x7043},
{"asm/ps3fb.h", "PS3FB_IOCTL_SETMODE", 0x7201},
{"asm/ps3fb.h", "PS3FB_IOCTL_GETMODE", 0x7202},
{"asm/ps3fb.h", "PS3FB_IOCTL_SCREENINFO", 0x7203},
{"asm/ps3fb.h", "PS3FB_IOCTL_ON", 0x7204},
{"asm/ps3fb.h", "PS3FB_IOCTL_OFF", 0x7205},
{"asm/ps3fb.h", "PS3FB_IOCTL_FSEL", 0x7206},
{"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},
{"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},
{"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},

View File

@ -0,0 +1 @@
#include "linux/ioctlent.h"

View File

@ -0,0 +1 @@
#include "../signalent.h"

View File

@ -24,8 +24,6 @@
* 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 */
@ -52,7 +50,7 @@
{ 5, TF, sys_mount, "mount" }, /* 21 */
{ 1, TF, sys_umount, "oldumount" }, /* 22 */
{ 1, 0, sys_setuid, "setuid" }, /* 23 */
{ 0, 0, sys_getuid, "getuid" }, /* 24 */
{ 0, NF, sys_getuid, "getuid" }, /* 24 */
{ 1, 0, sys_stime, "stime" }, /* 25 */
{ 4, 0, sys_ptrace, "ptrace" }, /* 26 */
{ 1, 0, sys_alarm, "alarm" }, /* 27 */
@ -75,16 +73,16 @@
{ 0, 0, sys_prof, "prof" }, /* 44 */
{ 1, 0, sys_brk, "brk" }, /* 45 */
{ 1, 0, sys_setgid, "setgid" }, /* 46 */
{ 0, 0, sys_getgid, "getgid" }, /* 47 */
{ 0, NF, sys_getgid, "getgid" }, /* 47 */
{ 3, TS, sys_signal, "signal" }, /* 48 */
{ 0, 0, sys_geteuid, "geteuid" }, /* 49 */
{ 0, 0, sys_getegid, "getegid" }, /* 50 */
{ 0, NF, sys_geteuid, "geteuid" }, /* 49 */
{ 0, NF, 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, "sys_mpx" }, /* 56 */
{ 0, 0, sys_mpx, "mpx" }, /* 56 */
{ 2, 0, sys_setpgid, "setpgid" }, /* 57 */
{ 2, 0, sys_ulimit, "ulimit" }, /* 58 */
{ 1, 0, sys_oldolduname, "oldolduname" }, /* 59 */
@ -96,8 +94,8 @@
{ 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 */
{ 0, TS, sys_siggetmask, "sgetmask" }, /* 68 */
{ 1, TS, sys_sigsetmask, "ssetmask" }, /* 69 */
{ 2, 0, sys_setreuid, "setreuid" }, /* 70 */
{ 2, 0, sys_setregid, "setregid" }, /* 71 */
{ 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
@ -115,10 +113,10 @@
{ 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 */
{ 2, TF, sys_swapon, "swapon" }, /* 87 */
{ 4, 0, sys_reboot, "reboot" }, /* 88 */
{ 3, TD, sys_readdir, "readdir" }, /* 89 */
{ 6, 0, sys_mmap, "mmap" }, /* 90 */
{ 6, TD, sys_mmap, "mmap" }, /* 90 */
{ 2, 0, sys_munmap, "munmap" }, /* 91 */
{ 2, TF, sys_truncate, "truncate" }, /* 92 */
{ 2, TD, sys_ftruncate, "ftruncate" }, /* 93 */
@ -138,20 +136,20 @@
{ 2, TF, sys_lstat, "lstat" }, /* 107 */
{ 2, TD, sys_fstat, "fstat" }, /* 108 */
{ 1, 0, sys_olduname, "olduname" }, /* 109 */
{ 5, 0, printargs, "SYS_110" }, /* 110 */
{ 5, 0, printargs, "iopl" }, /* 110 */
{ 0, 0, sys_vhangup, "vhangup" }, /* 111 */
{ 0, 0, sys_idle, "idle" }, /* 112 */
{ 5, 0, printargs, "SYS_113" }, /* 113 */
{ 5, 0, sys_vm86, "vm86" }, /* 113 */
{ 4, TP, sys_wait4, "wait4" }, /* 114 */
{ 1, 0, sys_swapoff, "swapoff" }, /* 115 */
{ 1, TF, sys_swapoff, "swapoff" }, /* 115 */
{ 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
{ 6, 0, sys_ipc, "ipc" }, /* 117 */
{ 6, TI, sys_ipc, "ipc" }, /* 117 */
{ 1, TD, sys_fsync, "fsync" }, /* 118 */
{ 1, TS, sys_sigreturn, "sigreturn" }, /* 119 */
{ 0, TS, sys_sigreturn, "sigreturn" }, /* 119 */
{ 5, TP, sys_clone, "clone" }, /* 120 */
{ 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
{ 1, 0, sys_uname, "uname" }, /* 122 */
{ 5, 0, printargs, "SYS_123" }, /* 123 */
{ 5, 0, printargs, "modify_ldt" }, /* 123 */
{ 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */
{ 3, 0, sys_mprotect, "mprotect" }, /* 125 */
{ 3, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */
@ -166,8 +164,8 @@
{ 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 */
{ 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */
{ 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */
{ 5, TF, sys_llseek, "_llseek" }, /* 140 */
{ 3, TD, sys_getdents, "getdents" }, /* 141 */
{ 5, TD, sys_select, "select" }, /* 142 */
@ -191,16 +189,16 @@
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
{ 4, 0, sys_mremap, "mremap" }, /* 163 */
{ 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_nfsservctl, "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 */
{ 0, TS, sys_rt_sigreturn, "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 */
@ -219,53 +217,52 @@
{ 5, 0, sys_putpmsg, "putpmsg" }, /* 188 */
{ 0, TP, sys_vfork, "vfork" }, /* 189 */
{ 2, 0, sys_getrlimit, "getrlimit" }, /* 190 */
{ 4, TD, sys_readahead, "readahead" }, /* 190 */
{ 6, 0, sys_mmap, "mmap2" }, /* 192 */
{ 5, TD, sys_readahead, "readahead" }, /* 190 */
{ 6, TD, 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 */
{ 6, 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 */
{ 0, 0, sys_gettid, "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 */
{ 4, TD, sys_fgetxattr, "fgetxattr" }, /* 214 */
{ 3, TF, sys_listxattr, "listxattr" }, /* 215 */
{ 3, TF, sys_listxattr, "llistxattr" }, /* 216 */
{ 3, 0, sys_flistxattr, "flistxattr" }, /* 217 */
{ 3, TD, 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, NULL, NULL }, /* 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 */
{ 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, 0, sys_set_tid_address, "set_tid_address" }, /* 232 */
{ 6, TD, sys_fadvise64, "fadvise64" }, /* 233 */
{ 1, TP, sys_exit, "exit_group" }, /* 234 */
{ 4, 0, printargs, "lookup_dcookie" }, /* 235 */
{ 1, 0, sys_epoll_create, "epoll_create" }, /* 236 */
{ 4, 0, sys_lookup_dcookie, "lookup_dcookie" }, /* 235 */
{ 1, TD, 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 */
@ -283,11 +280,11 @@
{ 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 */
{ 6, TD, sys_fadvise64_64, "fadvise64_64" }, /* 254 */
{ 1, 0, printargs, "rtas" }, /* 255 */
{ 5, 0, printargs, "debug_setcontext" }, /* 256 */
{ 5, 0, printargs, "vserver" }, /* 257 */
{ 5, 0, printargs, "SYS_258" }, /* 258 */
{ 5, 0, sys_vserver, "vserver" }, /* 257 */
{ 5, 0, sys_migrate_pages, "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 */
@ -297,14 +294,14 @@
{ 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 265 */
{ 2, 0, sys_mq_notify, "mq_notify" }, /* 266 */
{ 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 267 */
{ 5, 0, printargs, "sys_kexec_load" }, /* 268 */
{ 5, 0, printargs, "add_key" }, /* 269 */
{ 4, 0, printargs, "request_key" }, /* 270 */
{ 5, 0, printargs, "keyctl" }, /* 271 */
{ 4, 0, sys_kexec_load, "kexec_load" }, /* 268 */
{ 5, 0, sys_add_key, "add_key" }, /* 269 */
{ 4, 0, sys_request_key, "request_key" }, /* 270 */
{ 5, 0, sys_keyctl, "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, 0, sys_ioprio_set, "ioprio_set" }, /* 273 */
{ 2, 0, sys_ioprio_get, "ioprio_get" }, /* 274 */
{ 0, TD, sys_inotify_init, "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 */
@ -312,15 +309,15 @@
{ 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 */
{ 6, TD, sys_splice, "splice" }, /* 283 */
{ 4, TD, sys_tee, "tee" }, /* 284 */
{ 4, TD, sys_vmsplice, "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 */
{ 4, TD|TF, 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 */
@ -328,112 +325,112 @@
{ 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 */
{ 3, 0, sys_get_robust_list, "get_robust_list" }, /* 299 */
{ 2, 0, sys_set_robust_list, "set_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 */
{ 5, 0, printargs, "SYS_304" }, /* 304 */
{ 6, 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, "timerfd" }, /* 306 */
{ 4, TD, sys_timerfd_create, "timerfd_create" }, /* 306 */
{ 1, TD, sys_eventfd, "eventfd" }, /* 307 */
{ 5, 0, printargs, "SYS_308" }, /* 308 */
{ 5, 0, printargs, "SYS_309" }, /* 309 */
{ 3, 0, sys_subpage_prot, "subpage_prot" }, /* 310 */
{ 5, 0, printargs, "SYS_311" }, /* 311 */
{ 5, 0, printargs, "SYS_312" }, /* 312 */
{ 5, 0, printargs, "SYS_313" }, /* 313 */
{ 5, 0, printargs, "SYS_314" }, /* 314 */
{ 5, 0, printargs, "SYS_315" }, /* 315 */
{ 5, 0, printargs, "SYS_316" }, /* 316 */
{ 5, 0, printargs, "SYS_317" }, /* 317 */
{ 5, 0, printargs, "SYS_318" }, /* 318 */
{ 5, 0, printargs, "SYS_319" }, /* 319 */
{ 5, 0, printargs, "SYS_320" }, /* 320 */
{ 5, 0, printargs, "SYS_321" }, /* 321 */
{ 5, 0, printargs, "SYS_322" }, /* 322 */
{ 5, 0, printargs, "SYS_323" }, /* 323 */
{ 5, 0, printargs, "SYS_324" }, /* 324 */
{ 5, 0, printargs, "SYS_325" }, /* 325 */
{ 5, 0, printargs, "SYS_326" }, /* 326 */
{ 5, 0, printargs, "SYS_327" }, /* 327 */
{ 5, 0, printargs, "SYS_328" }, /* 328 */
{ 5, 0, printargs, "SYS_329" }, /* 329 */
{ 5, 0, printargs, "SYS_330" }, /* 330 */
{ 5, 0, printargs, "SYS_331" }, /* 331 */
{ 5, 0, printargs, "SYS_332" }, /* 332 */
{ 5, 0, printargs, "SYS_333" }, /* 333 */
{ 5, 0, printargs, "SYS_334" }, /* 334 */
{ 5, 0, printargs, "SYS_335" }, /* 335 */
{ 5, 0, printargs, "SYS_336" }, /* 336 */
{ 5, 0, printargs, "SYS_337" }, /* 337 */
{ 5, 0, printargs, "SYS_338" }, /* 338 */
{ 5, 0, printargs, "SYS_339" }, /* 339 */
{ 5, 0, printargs, "SYS_340" }, /* 340 */
{ 5, 0, printargs, "SYS_341" }, /* 341 */
{ 5, 0, printargs, "SYS_342" }, /* 342 */
{ 5, 0, printargs, "SYS_343" }, /* 343 */
{ 5, 0, printargs, "SYS_344" }, /* 344 */
{ 5, 0, printargs, "SYS_345" }, /* 345 */
{ 5, 0, printargs, "SYS_346" }, /* 346 */
{ 5, 0, printargs, "SYS_347" }, /* 347 */
{ 5, 0, printargs, "SYS_348" }, /* 348 */
{ 5, 0, printargs, "SYS_349" }, /* 349 */
{ 5, 0, printargs, "SYS_350" }, /* 350 */
{ 5, 0, printargs, "SYS_351" }, /* 351 */
{ 5, 0, printargs, "SYS_352" }, /* 352 */
{ 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 */
{ 4, TD, sys_sync_file_range, "sync_file_range" }, /* 308 */
{ 6, TD, 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, TD, 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, sys_perf_event_open, "perf_event_open" }, /* 319 */
{ 5, TD, sys_preadv, "preadv" }, /* 320 */
{ 5, TD, sys_pwritev, "pwritev" }, /* 321 */
{ 4, TP|TS, sys_rt_tgsigqueueinfo, "rt_tgsigqueueinfo" }, /* 322 */
{ 2, TD, sys_fanotify_init, "fanotify_init" }, /* 323 */
{ 5, TD|TF, sys_fanotify_mark, "fanotify_mark" }, /* 324 */
{ 4, 0, sys_prlimit64, "prlimit64" }, /* 325 */
{ 3, TN, sys_socket, "socket" }, /* 326 */
{ 3, TN, sys_bind, "bind" }, /* 327 */
{ 3, TN, sys_connect, "connect" }, /* 328 */
{ 2, TN, sys_listen, "listen" }, /* 329 */
{ 3, TN, sys_accept, "accept" }, /* 330 */
{ 3, TN, sys_getsockname, "getsockname" }, /* 331 */
{ 3, TN, sys_getpeername, "getpeername" }, /* 332 */
{ 4, TN, sys_socketpair, "socketpair" }, /* 333 */
{ 4, TN, sys_send, "send" }, /* 334 */
{ 6, TN, sys_sendto, "sendto" }, /* 335 */
{ 4, TN, sys_recv, "recv" }, /* 336 */
{ 6, TN, sys_recvfrom, "recvfrom" }, /* 337 */
{ 2, TN, sys_shutdown, "shutdown" }, /* 338 */
{ 5, TN, sys_setsockopt, "setsockopt" }, /* 339 */
{ 5, TN, sys_getsockopt, "getsockopt" }, /* 340 */
{ 3, TN, sys_sendmsg, "sendmsg" }, /* 341 */
{ 5, TN, sys_recvmsg, "recvmsg" }, /* 342 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 343 */
{ 4, TN, sys_accept4, "accept4" }, /* 344 */
{ 5, TD|TF, sys_name_to_handle_at, "name_to_handle_at" }, /* 345 */
{ 3, TD, sys_open_by_handle_at, "open_by_handle_at" }, /* 346 */
{ 2, 0, sys_clock_adjtime, "clock_adjtime" }, /* 347 */
{ 1, TD, sys_syncfs, "syncfs" }, /* 348 */
{ 4, TN, sys_sendmmsg, "sendmmsg" }, /* 349 */
{ 2, TD, sys_setns, "setns" }, /* 350 */
{ 6, 0, sys_process_vm_readv, "process_vm_readv" }, /* 351 */
{ 6, 0, sys_process_vm_writev, "process_vm_writev" }, /* 352 */
{ 5, 0, NULL, NULL }, /* 353 */
{ 5, 0, NULL, NULL }, /* 354 */
{ 5, 0, NULL, NULL }, /* 355 */
{ 5, 0, NULL, NULL }, /* 356 */
{ 5, 0, NULL, NULL }, /* 357 */
{ 5, 0, NULL, NULL }, /* 358 */
{ 5, 0, NULL, NULL }, /* 359 */
{ 5, 0, NULL, NULL }, /* 360 */
{ 5, 0, NULL, NULL }, /* 361 */
{ 5, 0, NULL, NULL }, /* 362 */
{ 5, 0, NULL, NULL }, /* 363 */
{ 5, 0, NULL, NULL }, /* 364 */
{ 5, 0, NULL, NULL }, /* 365 */
{ 5, 0, NULL, NULL }, /* 366 */
{ 5, 0, NULL, NULL }, /* 367 */
{ 5, 0, NULL, NULL }, /* 368 */
{ 5, 0, NULL, NULL }, /* 369 */
{ 5, 0, NULL, NULL }, /* 370 */
{ 5, 0, NULL, NULL }, /* 371 */
{ 5, 0, NULL, NULL }, /* 372 */
{ 5, 0, NULL, NULL }, /* 373 */
{ 5, 0, NULL, NULL }, /* 374 */
{ 5, 0, NULL, NULL }, /* 375 */
{ 5, 0, NULL, NULL }, /* 376 */
{ 5, 0, NULL, NULL }, /* 377 */
{ 5, 0, NULL, NULL }, /* 378 */
{ 5, 0, NULL, NULL }, /* 379 */
{ 5, 0, NULL, NULL }, /* 380 */
{ 5, 0, NULL, NULL }, /* 381 */
{ 5, 0, NULL, NULL }, /* 382 */
{ 5, 0, NULL, NULL }, /* 383 */
{ 5, 0, NULL, NULL }, /* 384 */
{ 5, 0, NULL, NULL }, /* 385 */
{ 5, 0, NULL, NULL }, /* 386 */
{ 5, 0, NULL, NULL }, /* 387 */
{ 5, 0, NULL, NULL }, /* 388 */
{ 5, 0, NULL, NULL }, /* 389 */
{ 5, 0, NULL, NULL }, /* 390 */
{ 5, 0, NULL, NULL }, /* 391 */
{ 5, 0, NULL, NULL }, /* 392 */
{ 5, 0, NULL, NULL }, /* 393 */
{ 5, 0, NULL, NULL }, /* 394 */
{ 5, 0, NULL, NULL }, /* 395 */
{ 5, 0, NULL, NULL }, /* 396 */
{ 5, 0, NULL, NULL }, /* 397 */
{ 5, 0, NULL, NULL }, /* 398 */
{ 5, 0, NULL, NULL }, /* 399 */
#if SYS_socket_subcall != 400
#error fix me
#endif
{ 8, 0, printargs, "socket_subcall"}, /* 400 */
{ 6, 0, printargs, "socket_subcall"}, /* 400 */
{ 3, TN, sys_socket, "socket" }, /* 401 */
{ 3, TN, sys_bind, "bind" }, /* 402 */
{ 3, TN, sys_connect, "connect" }, /* 403 */
@ -449,40 +446,41 @@
{ 2, TN, sys_shutdown, "shutdown" }, /* 413 */
{ 5, TN, sys_setsockopt, "setsockopt" }, /* 414 */
{ 5, TN, sys_getsockopt, "getsockopt" }, /* 415 */
{ 5, TN, sys_sendmsg, "sendmsg" }, /* 416 */
{ 3, 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 != 419
#if SYS_ipc_subcall != 420
#error fix me
#endif
{ 4, 0, printargs, "ipc_subcall" }, /* 419 */
{ 4, TI, printargs, "semop" }, /* 420 */
{ 4, TI, sys_semget, "semget" }, /* 421 */
{ 4, TI, sys_semctl, "semctl" }, /* 422 */
{ 5, TI, sys_semtimedop, "semtimedop" }, /* 423 */
{ 4, 0, printargs, "ipc_subcall" }, /* 424 */
{ 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, TI, sys_msgsnd, "msgsnd" }, /* 430 */
{ 4, TI, sys_msgrcv, "msgrcv" }, /* 431 */
{ 4, TI, sys_msgget, "msgget" }, /* 432 */
{ 4, TI, sys_msgctl, "msgctl" }, /* 433 */
{ 4, 0, printargs, "ipc_subcall" }, /* 434 */
{ 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, TI, sys_shmat, "shmat" }, /* 440 */
{ 4, TI, sys_shmdt, "shmdt" }, /* 441 */
{ 4, TI, sys_shmget, "shmget" }, /* 442 */
{ 4, TI, sys_shmctl, "shmctl" }, /* 443 */
{ 5, 0, printargs, "SYS_343" }, /* 444 */
{ 5, 0, printargs, "SYS_344" }, /* 445 */
{ 5, 0, printargs, "SYS_345" }, /* 446 */
{ 5, 0, printargs, "SYS_346" }, /* 447 */
{ 5, 0, printargs, "SYS_347" }, /* 448 */
{ 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, NULL, NULL }, /* 445 */
{ 5, 0, NULL, NULL }, /* 446 */
{ 5, 0, NULL, NULL }, /* 447 */
{ 5, 0, NULL, NULL }, /* 448 */
{ 5, 0, NULL, NULL }, /* 449 */

View File

@ -0,0 +1 @@
#include "syscallent.h"

View File

@ -1,941 +0,0 @@
{"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},

125
linux/s390/ioctlent.h.in Normal file
View File

@ -0,0 +1,125 @@
{"asm/dasd.h", "BIODASDDISABLE", 0x4400},
{"asm/dasd.h", "DASDAPIVER", 0x4400},
{"asm/dasd.h", "BIODASDENABLE", 0x4401},
{"asm/dasd.h", "BIODASDFMT", 0x4401},
{"asm/dasd.h", "BIODASDINFO", 0x4401},
{"asm/dasd.h", "BIODASDSNID", 0x4401},
{"asm/dasd.h", "BIODASDPRRD", 0x4402},
{"asm/dasd.h", "BIODASDRSRV", 0x4402},
{"asm/dasd.h", "BIODASDSATTR", 0x4402},
{"asm/dasd.h", "BIODASDINFO2", 0x4403},
{"asm/dasd.h", "BIODASDRLSE", 0x4403},
{"asm/dasd.h", "BIODASDPSRD", 0x4404},
{"asm/dasd.h", "BIODASDSLCK", 0x4404},
{"asm/dasd.h", "BIODASDGATTR", 0x4405},
{"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", "BIODASDREADALLCMB", 0x4421},
{"asm/dasd.h", "BIODASDSYMMIO", 0x44f0},
{"asm-generic/ioctls.h", "TCGETS", 0x5401},
{"asm-generic/ioctls.h", "TCSETS", 0x5402},
{"asm-generic/ioctls.h", "TCSETSW", 0x5403},
{"asm-generic/ioctls.h", "TCSETSF", 0x5404},
{"asm-generic/ioctls.h", "TCGETA", 0x5405},
{"asm-generic/ioctls.h", "TCSETA", 0x5406},
{"asm-generic/ioctls.h", "TCSETAW", 0x5407},
{"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", "TIOCGDEV", 0x5432},
{"asm-generic/ioctls.h", "TCSETX", 0x5433},
{"asm-generic/ioctls.h", "TCSETXF", 0x5434},
{"asm-generic/ioctls.h", "TCSETXW", 0x5435},
{"asm-generic/ioctls.h", "TIOCSIG", 0x5436},
{"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/ioctls.h", "FIOQSIZE", 0x545e},
{"asm-generic/ioctls.h", "FIOQSIZE", 0x5460},
{"asm/chsc.h", "CHSC_START", 0x6381},
{"asm/chsc.h", "CHSC_INFO_CHANNEL_PATH", 0x6382},
{"asm/chsc.h", "CHSC_INFO_CU", 0x6383},
{"asm/chsc.h", "CHSC_INFO_SCH_CU", 0x6384},
{"asm/chsc.h", "CHSC_INFO_CI", 0x6385},
{"asm/chsc.h", "CHSC_INFO_CCL", 0x6386},
{"asm/chsc.h", "CHSC_INFO_CPD", 0x6387},
{"asm/chsc.h", "CHSC_INFO_DCAL", 0x6388},
{"asm/tape390.h", "TAPE390_DISPLAY", 0x6401},
{"asm/tape390.h", "TAPE390_CRYPT_SET", 0x6402},
{"asm/tape390.h", "TAPE390_CRYPT_QUERY", 0x6403},
{"asm/tape390.h", "TAPE390_KEKL_SET", 0x6404},
{"asm/tape390.h", "TAPE390_KEKL_QUERY", 0x6405},
{"asm/zcrypt.h", "Z90STAT_TOTALCOUNT", 0x7a40},
{"asm/zcrypt.h", "Z90STAT_PCICACOUNT", 0x7a41},
{"asm/zcrypt.h", "Z90STAT_PCICCCOUNT", 0x7a42},
{"asm/zcrypt.h", "Z90STAT_REQUESTQ_COUNT", 0x7a44},
{"asm/zcrypt.h", "Z90STAT_PENDINGQ_COUNT", 0x7a45},
{"asm/zcrypt.h", "Z90STAT_TOTALOPEN_COUNT", 0x7a46},
{"asm/zcrypt.h", "Z90STAT_DOMAIN_INDEX", 0x7a47},
{"asm/zcrypt.h", "Z90STAT_STATUS_MASK", 0x7a48},
{"asm/zcrypt.h", "Z90STAT_QDEPTH_MASK", 0x7a49},
{"asm/zcrypt.h", "Z90STAT_PERDEV_REQCNT", 0x7a4a},
{"asm/zcrypt.h", "Z90STAT_PCIXCCMCL2COUNT", 0x7a4b},
{"asm/zcrypt.h", "Z90STAT_PCIXCCMCL3COUNT", 0x7a4c},
{"asm/zcrypt.h", "Z90STAT_CEX2CCOUNT", 0x7a4d},
{"asm/zcrypt.h", "Z90STAT_CEX2ACOUNT", 0x7a4e},
{"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},

View File

@ -45,25 +45,25 @@
{ 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 */
{ MA, 0, NULL, NULL }, /* 17 */
{ MA, 0, NULL, NULL }, /* 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 */
{ 0, NF, 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 */
{ MA, 0, NULL, NULL }, /* 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 */
{ MA, 0, NULL, NULL }, /* 31 */
{ MA, 0, NULL, NULL }, /* 32 */
{ 2, TF, sys_access, "access" }, /* 33 */
{ 1, 0, sys_nice, "nice" }, /* 34 */
{ -1, 0, printargs, "SYS_35" }, /* 35 */
{ MA, 0, NULL, NULL }, /* 35 */
{ 0, 0, sys_sync, "sync" }, /* 36 */
{ 2, TS, sys_kill, "kill" }, /* 37 */
{ 2, TF, sys_rename, "rename" }, /* 38 */
@ -72,22 +72,22 @@
{ 1, TD, sys_dup, "dup" }, /* 41 */
{ 1, TD, sys_pipe, "pipe" }, /* 42 */
{ 1, 0, sys_times, "times" }, /* 43 */
{ -1, 0, printargs, "SYS_44" }, /* 44 */
{ MA, 0, NULL, NULL }, /* 44 */
{ 1, 0, sys_brk, "brk" }, /* 45 */
{ -1, 0, printargs, "SYS_46" }, /* 46 */
{ -1, 0, printargs, "SYS_47" }, /* 47 */
{ MA, 0, NULL, NULL }, /* 46 */
{ MA, 0, NULL, NULL }, /* 47 */
{ 3, TS, sys_signal, "signal" }, /* 48 */
{ 0, 0, sys_geteuid, "geteuid" }, /* 49 */
{ 0, 0, sys_getegid, "getegid" }, /* 50 */
{ 0, NF, sys_geteuid, "geteuid" }, /* 49 */
{ 0, NF, sys_getegid, "getegid" }, /* 50 */
{ 1, TF, sys_acct, "acct" }, /* 51 */
{ 2, TF, sys_umount2, "umount" }, /* 52 */
{ -1, 0, printargs, "SYS_53" }, /* 53 */
{ MA, 0, NULL, NULL }, /* 53 */
{ 3, TD, sys_ioctl, "ioctl" }, /* 54 */
{ 3, TD, sys_fcntl, "fcntl" }, /* 55 */
{ -1, 0, printargs, "SYS_56" }, /* 56 */
{ MA, 0, NULL, NULL }, /* 56 */
{ 2, 0, sys_setpgid, "setpgid" }, /* 57 */
{ -1, 0, printargs, "SYS_58" }, /* 58 */
{ -1, 0, printargs, "SYS_59" }, /* 59 */
{ MA, 0, NULL, NULL }, /* 58 */
{ MA, 0, NULL, NULL }, /* 59 */
{ 1, 0, sys_umask, "umask" }, /* 60 */
{ 1, TF, sys_chroot, "chroot" }, /* 61 */
{ 2, 0, sys_ustat, "ustat" }, /* 62 */
@ -96,8 +96,8 @@
{ 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 */
{ MA, 0, NULL, NULL }, /* 68 */
{ MA, 0, NULL, NULL }, /* 69 */
{ 2, 0, sys_setreuid, "setreuid" }, /* 70 */
{ 2, 0, sys_setregid, "setregid" }, /* 71 */
{ 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
@ -110,13 +110,13 @@
{ 2, 0, sys_settimeofday, "settimeofday" }, /* 79 */
{ 2, 0, sys_getgroups, "getgroups" }, /* 80 */
{ 2, 0, sys_setgroups, "setgroups" }, /* 81 */
{ -1, 0, printargs, "SYS_82" }, /* 82 */
{ MA, 0, NULL, NULL }, /* 82 */
{ 2, TF, sys_symlink, "symlink" }, /* 83 */
{ -1, 0, printargs, "SYS_84" }, /* 84 */
{ MA, 0, NULL, NULL }, /* 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 */
{ 2, TF, sys_swapon, "swapon" }, /* 87 */
{ 4, 0, sys_reboot, "reboot" }, /* 88 */
{ 3, TD, sys_readdir, "readdir" }, /* 89 */
{ 6, TD, sys_old_mmap, "mmap" }, /* 90 */
{ 2, 0, sys_munmap, "munmap" }, /* 91 */
@ -126,7 +126,7 @@
{ 3, TD, sys_fchown, "fchown" }, /* 95 */
{ 2, 0, sys_getpriority, "getpriority" }, /* 96 */
{ 3, 0, sys_setpriority, "setpriority" }, /* 97 */
{ -1, 0, printargs, "SYS_98" }, /* 98 */
{ MA, 0, NULL, NULL }, /* 98 */
{ 2, TF, sys_statfs, "statfs" }, /* 99 */
{ 2, TD, sys_fstatfs, "fstatfs" }, /* 100 */
{ 3, 0, sys_ioperm, "ioperm" }, /* 101 */
@ -137,21 +137,21 @@
{ 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 */
{ MA, 0, NULL, NULL }, /* 109 */
{ MA, 0, NULL, NULL }, /* 110 */
{ 0, 0, sys_vhangup, "vhangup" }, /* 111 */
{ 0, 0, sys_idle, "idle" }, /* 112 */
{ -1, 0, printargs, "SYS_113" }, /* 113 */
{ MA, 0, NULL, NULL }, /* 113 */
{ 4, TP, sys_wait4, "wait4" }, /* 114 */
{ 1, 0, sys_swapoff, "swapoff" }, /* 115 */
{ 1, TF, sys_swapoff, "swapoff" }, /* 115 */
{ 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
{ 5, 0, sys_ipc, "ipc" }, /* 117 */
{ 5, TI, sys_ipc, "ipc" }, /* 117 */
{ 1, TD, sys_fsync, "fsync" }, /* 118 */
{ 1, TS, sys_sigreturn, "sigreturn" }, /* 119 */
{ 0, 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 */
{ MA, 0, NULL, NULL }, /* 123 */
{ 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */
{ 3, 0, sys_mprotect, "mprotect" }, /* 125 */
{ 3, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */
@ -166,8 +166,8 @@
{ 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 */
{ 1, NF, sys_setfsuid, "setfsuid" }, /* 138 */
{ 1, NF, sys_setfsgid, "setfsgid" }, /* 139 */
{ 5, TD, sys_llseek, "_llseek" }, /* 140 */
{ 3, TD, sys_getdents, "getdents" }, /* 141 */
{ 5, TD, sys_select, "select" }, /* 142 */
@ -180,7 +180,7 @@
{ 1, 0, sys_sysctl, "_sysctl" }, /* 149 */
{ 2, 0, sys_mlock, "mlock" }, /* 150 */
{ 2, 0, sys_munlock, "munlock" }, /* 151 */
{ 2, 0, sys_mlockall, "mlockall" }, /* 152 */
{ 1, 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 */
@ -191,17 +191,17 @@
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
{ 4, 0, sys_mremap, "mremap" }, /* 163 */
{ 5, 0, sys_mremap, "mremap" }, /* 163 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 164 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 165 */
{ -1, 0, printargs, "SYS_166" }, /* 166 */
{ MA, 0, NULL, NULL }, /* 166 */
{ 5, 0, sys_query_module, "query_module" }, /* 167 */
{ 3, TD, sys_poll, "poll" }, /* 168 */
{ 3, 0, printargs, "nfsservctl" }, /* 169 */
{ 3, 0, sys_nfsservctl, "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 */
{ 0, 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 */
@ -220,17 +220,17 @@
{ 5, 0, sys_putpmsg, "putpmsg" }, /* 189 */
{ 0, TP, sys_vfork, "vfork" }, /* 190 */
{ 2, 0, sys_getrlimit, "getrlimit" }, /* 191 */
{ 6, 0, sys_mmap, "mmap2" }, /* 192 */
{ 6, TD, 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 */
{ 0, NF, sys_getuid, "getuid" }, /* 199 */
{ 0, NF, sys_getgid, "getgid" }, /* 200 */
{ 0, NF, sys_geteuid, "geteuid" }, /* 201 */
{ 0, NF, sys_getegid, "getegid" }, /* 202 */
{ 2, 0, sys_setreuid, "setreuid" }, /* 203 */
{ 2, 0, sys_setregid, "setregid" }, /* 204 */
{ 2, 0, sys_getgroups, "getgroups" }, /* 205 */
@ -243,10 +243,10 @@
{ 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 */
{ 1, NF, sys_setfsuid, "setfsuid" }, /* 215 */
{ 1, NF, sys_setfsgid, "setfsgid" }, /* 216 */
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
{ 3, 0, sys_mincore, "mincore" }, /* 218 */
{ 3, 0, sys_mincore, "mincore" }, /* 218 */
{ 3, 0, sys_madvise, "madvise" }, /* 219 */
{ 3, TD, sys_getdents64, "getdents64" }, /* 220 */
{ 3, TD, sys_fcntl, "fcntl64" }, /* 221 */
@ -257,31 +257,31 @@
{ 5, TD, sys_fsetxattr, "fsetxattr" }, /* 226 */
{ 4, TF, sys_getxattr, "getxattr" }, /* 227 */
{ 4, TF, sys_getxattr, "lgetxattr" }, /* 228 */
{ 4, 0, sys_fgetxattr, "fgetxattr" }, /* 229 */
{ 4, TD, sys_fgetxattr, "fgetxattr" }, /* 229 */
{ 3, TF, sys_listxattr, "listxattr" }, /* 230 */
{ 3, TF, sys_listxattr, "llistxattr" }, /* 231 */
{ 3, 0, sys_flistxattr, "flistxattr" }, /* 232 */
{ 3, TD, 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 */
{ 0, 0, sys_gettid, "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 */
{ MA, 0, NULL, NULL }, /* 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 */
{ 1, TD, 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 */
{ 1, 0, sys_set_tid_address, "set_tid_address"}, /* 252 */
{ 5, TD, 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 */
@ -291,8 +291,8 @@
{ 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 */
{ 5, 0, sys_vserver, "vserver" }, /* 263 */
{ 5, TD, 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 */
@ -305,23 +305,23 @@
{ 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, "sys_kexec_load" }, /* 277 */
{ 5, 0, printargs, "add_key" }, /* 278 */
{ 4, 0, printargs, "request_key" }, /* 279 */
{ 5, 0, printargs, "keyctl" }, /* 280 */
{ 4, 0, sys_kexec_load, "kexec_load" }, /* 277 */
{ 5, 0, sys_add_key, "add_key" }, /* 278 */
{ 4, 0, sys_request_key, "request_key" }, /* 279 */
{ 5, 0, sys_keyctl, "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, 0, sys_ioprio_set, "ioprio_set" }, /* 282 */
{ 2, 0, sys_ioprio_get, "ioprio_get" }, /* 283 */
{ 0, TD, sys_inotify_init, "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, 0, sys_migrate_pages, "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 */
{ 4, TD|TF, 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 */
@ -332,108 +332,107 @@
{ 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 */
{ 2, 0, sys_set_robust_list, "set_robust_list" }, /* 304 */
{ 3, 0, sys_get_robust_list, "get_robust_list" }, /* 305 */
{ 6, TD, sys_splice, "splice" }, /* 306 */
{ 4, TD, sys_sync_file_range, "sync_file_range" }, /* 307 */
{ 4, TD, sys_tee, "tee" }, /* 308 */
{ 4, TD, sys_vmsplice, "vmsplice" }, /* 309 */
{ 6, 0, sys_move_pages, "move_pages" }, /* 310 */
{ 3, 0, sys_getcpu, "getcpu" }, /* 311 */
{ 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 312 */
{ 5, 0, printargs, "SYS_313" }, /* 313 */
{ 5, 0, printargs, "SYS_314" }, /* 314 */
{ 5, 0, printargs, "SYS_315" }, /* 315 */
{ 6, TD, sys_epoll_pwait, "epoll_pwait" }, /* 312 */
{ 2, TF, sys_utimes, "utimes" }, /* 313 */
{ 6, TD, 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 */
{ 5, 0, printargs, "SYS_319" }, /* 319 */
{ 5, 0, printargs, "SYS_320" }, /* 320 */
{ 5, 0, printargs, "SYS_321" }, /* 321 */
{ 5, 0, printargs, "SYS_322" }, /* 322 */
{ 5, 0, printargs, "SYS_323" }, /* 323 */
{ 5, 0, printargs, "SYS_324" }, /* 324 */
{ 5, 0, printargs, "SYS_325" }, /* 325 */
{ 5, 0, printargs, "SYS_326" }, /* 326 */
{ 5, 0, printargs, "SYS_327" }, /* 327 */
{ 5, 0, printargs, "SYS_328" }, /* 328 */
{ 5, 0, printargs, "SYS_329" }, /* 329 */
{ 5, 0, printargs, "SYS_330" }, /* 330 */
{ 5, 0, printargs, "SYS_331" }, /* 331 */
{ 5, 0, printargs, "SYS_332" }, /* 332 */
{ 5, 0, printargs, "SYS_333" }, /* 333 */
{ 5, 0, printargs, "SYS_334" }, /* 334 */
{ 5, 0, printargs, "SYS_335" }, /* 335 */
{ 5, 0, printargs, "SYS_336" }, /* 336 */
{ 5, 0, printargs, "SYS_337" }, /* 337 */
{ 5, 0, printargs, "SYS_338" }, /* 338 */
{ 5, 0, printargs, "SYS_339" }, /* 339 */
{ 5, 0, printargs, "SYS_340" }, /* 340 */
{ 5, 0, printargs, "SYS_341" }, /* 341 */
{ 5, 0, printargs, "SYS_342" }, /* 342 */
{ 5, 0, printargs, "SYS_343" }, /* 343 */
{ 5, 0, printargs, "SYS_344" }, /* 344 */
{ 5, 0, printargs, "SYS_345" }, /* 345 */
{ 5, 0, printargs, "SYS_346" }, /* 346 */
{ 5, 0, printargs, "SYS_347" }, /* 347 */
{ 5, 0, printargs, "SYS_348" }, /* 348 */
{ 5, 0, printargs, "SYS_349" }, /* 349 */
{ 5, 0, printargs, "SYS_350" }, /* 350 */
{ 5, 0, printargs, "SYS_351" }, /* 351 */
{ 5, 0, printargs, "SYS_352" }, /* 352 */
{ 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 */
{ 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, TD, sys_epoll_create1, "epoll_create1" }, /* 327 */
{ 5, TD, sys_preadv, "preadv" }, /* 328 */
{ 5, TD, sys_pwritev, "pwritev" }, /* 329 */
{ 4, TP|TS, sys_rt_tgsigqueueinfo, "rt_tgsigqueueinfo"}, /* 330 */
{ 5, TD, sys_perf_event_open, "perf_event_open"}, /* 331 */
{ 2, TD, sys_fanotify_init, "fanotify_init" }, /* 332 */
{ 5, TD|TF, sys_fanotify_mark, "fanotify_mark" }, /* 333 */
{ 4, 0, sys_prlimit64, "prlimit64" }, /* 334 */
{ 5, TD|TF, sys_name_to_handle_at, "name_to_handle_at"}, /* 335 */
{ 3, TD, sys_open_by_handle_at, "open_by_handle_at"}, /* 336 */
{ 2, 0, sys_clock_adjtime, "clock_adjtime" }, /* 337 */
{ 1, TD, sys_syncfs, "syncfs" }, /* 338 */
{ 2, TD, sys_setns, "setns" }, /* 339 */
{ 6, 0, sys_process_vm_readv, "process_vm_readv" }, /* 340 */
{ 6, 0, sys_process_vm_writev, "process_vm_writev" }, /* 341 */
{ 5, 0, NULL, NULL }, /* 342 */
{ 5, 0, NULL, NULL }, /* 343 */
{ 5, 0, NULL, NULL }, /* 344 */
{ 5, 0, NULL, NULL }, /* 345 */
{ 5, 0, NULL, NULL }, /* 346 */
{ 5, 0, NULL, NULL }, /* 347 */
{ 5, 0, NULL, NULL }, /* 348 */
{ 5, 0, NULL, NULL }, /* 349 */
{ 5, 0, NULL, NULL }, /* 350 */
{ 5, 0, NULL, NULL }, /* 351 */
{ 5, 0, NULL, NULL }, /* 352 */
{ 5, 0, NULL, NULL }, /* 353 */
{ 5, 0, NULL, NULL }, /* 354 */
{ 5, 0, NULL, NULL }, /* 355 */
{ 5, 0, NULL, NULL }, /* 356 */
{ 5, 0, NULL, NULL }, /* 357 */
{ 5, 0, NULL, NULL }, /* 358 */
{ 5, 0, NULL, NULL }, /* 359 */
{ 5, 0, NULL, NULL }, /* 360 */
{ 5, 0, NULL, NULL }, /* 361 */
{ 5, 0, NULL, NULL }, /* 362 */
{ 5, 0, NULL, NULL }, /* 363 */
{ 5, 0, NULL, NULL }, /* 364 */
{ 5, 0, NULL, NULL }, /* 365 */
{ 5, 0, NULL, NULL }, /* 366 */
{ 5, 0, NULL, NULL }, /* 367 */
{ 5, 0, NULL, NULL }, /* 368 */
{ 5, 0, NULL, NULL }, /* 369 */
{ 5, 0, NULL, NULL }, /* 370 */
{ 5, 0, NULL, NULL }, /* 371 */
{ 5, 0, NULL, NULL }, /* 372 */
{ 5, 0, NULL, NULL }, /* 373 */
{ 5, 0, NULL, NULL }, /* 374 */
{ 5, 0, NULL, NULL }, /* 375 */
{ 5, 0, NULL, NULL }, /* 376 */
{ 5, 0, NULL, NULL }, /* 377 */
{ 5, 0, NULL, NULL }, /* 378 */
{ 5, 0, NULL, NULL }, /* 379 */
{ 5, 0, NULL, NULL }, /* 380 */
{ 5, 0, NULL, NULL }, /* 381 */
{ 5, 0, NULL, NULL }, /* 382 */
{ 5, 0, NULL, NULL }, /* 383 */
{ 5, 0, NULL, NULL }, /* 384 */
{ 5, 0, NULL, NULL }, /* 385 */
{ 5, 0, NULL, NULL }, /* 386 */
{ 5, 0, NULL, NULL }, /* 387 */
{ 5, 0, NULL, NULL }, /* 388 */
{ 5, 0, NULL, NULL }, /* 389 */
{ 5, 0, NULL, NULL }, /* 390 */
{ 5, 0, NULL, NULL }, /* 391 */
{ 5, 0, NULL, NULL }, /* 392 */
{ 5, 0, NULL, NULL }, /* 393 */
{ 5, 0, NULL, NULL }, /* 394 */
{ 5, 0, NULL, NULL }, /* 395 */
{ 5, 0, NULL, NULL }, /* 396 */
{ 5, 0, NULL, NULL }, /* 397 */
{ 5, 0, NULL, NULL }, /* 398 */
{ 5, 0, NULL, NULL }, /* 399 */
#if SYS_socket_subcall != 400
#error fix me
#endif
{ 8, 0, printargs, "socket_subcall"}, /* 400 */
{ 6, 0, printargs, "socket_subcall"}, /* 400 */
{ 3, TN, sys_socket, "socket" }, /* 401 */
{ 3, TN, sys_bind, "bind" }, /* 402 */
{ 3, TN, sys_connect, "connect" }, /* 403 */
@ -449,35 +448,36 @@
{ 2, TN, sys_shutdown, "shutdown" }, /* 413 */
{ 5, TN, sys_setsockopt, "setsockopt" }, /* 414 */
{ 5, TN, sys_getsockopt, "getsockopt" }, /* 415 */
{ 5, TN, sys_sendmsg, "sendmsg" }, /* 416 */
{ 3, 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 != 419
#if SYS_ipc_subcall != 420
#error fix me
#endif
{ 4, 0, printargs, "ipc_subcall" }, /* 419 */
{ 4, TI, sys_semop, "semop" }, /* 420 */
{ 4, TI, sys_semget, "semget" }, /* 421 */
{ 4, TI, sys_semctl, "semctl" }, /* 422 */
{ 5, TI, sys_semtimedop, "semtimedop" }, /* 423 */
{ 4, 0, printargs, "ipc_subcall" }, /* 424 */
{ 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, TI, sys_msgsnd, "msgsnd" }, /* 430 */
{ 4, TI, sys_msgrcv, "msgrcv" }, /* 431 */
{ 4, TI, sys_msgget, "msgget" }, /* 432 */
{ 4, TI, sys_msgctl, "msgctl" }, /* 433 */
{ 4, 0, printargs, "ipc_subcall" }, /* 434 */
{ 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, TI, sys_shmat, "shmat" }, /* 440 */
{ 4, TI, sys_shmdt, "shmdt" }, /* 441 */
{ 4, TI, sys_shmget, "shmget" }, /* 442 */
{ 4, TI, sys_shmctl, "shmctl" }, /* 443 */
{ 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 */

View File

@ -1,941 +0,0 @@
{"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},

Some files were not shown because too many files have changed in this diff Show More