Compare commits
248 Commits
Author | SHA1 | Date | |
---|---|---|---|
e1fec334db | |||
c1a0b67db5 | |||
7082acc0e3 | |||
7bce0e9fd4 | |||
27aaa29d73 | |||
66db159f7e | |||
9f294b39f5 | |||
ee70a1baac | |||
5cf68f97d5 | |||
04ec08ab62 | |||
820adffcd9 | |||
7b6d66f215 | |||
4503da0816 | |||
7211bdb982 | |||
6fdb10455a | |||
ba63d8a166 | |||
cce5aaef1e | |||
7fa26e1712 | |||
f5278a7d94 | |||
db098f9a3d | |||
f3228d3268 | |||
e8f36ec0c5 | |||
a606d3a74a | |||
55334effed | |||
a2402cea20 | |||
54a4a1a918 | |||
1929c2216a | |||
2c871eb566 | |||
b93991d381 | |||
11f7093560 | |||
cfa1b17619 | |||
dbb76606dc | |||
5af0e0dab8 | |||
e32f7eeefc | |||
ec3761429e | |||
aefb09b9cc | |||
db27247d84 | |||
81b63834dd | |||
ee9e7a7e5b | |||
906dc4aaa1 | |||
340909fd00 | |||
fd5195dccd | |||
abde34546d | |||
46b89571f5 | |||
4cb1124902 | |||
01bb1d206a | |||
3b3fd71546 | |||
f8b50ef4ea | |||
51330fd434 | |||
e87379b820 | |||
0cda3e0823 | |||
632cc8a697 | |||
5cc7036061 | |||
074c630705 | |||
0c5b09c658 | |||
a392aaa796 | |||
aa95ec7648 | |||
0400e2ca7d | |||
68beed808a | |||
91eb1eddb0 | |||
212a444bdc | |||
0918a4c3a2 | |||
b9bac78553 | |||
99f41c592d | |||
48ba1de869 | |||
e9bfa4e406 | |||
ac563cff02 | |||
fe1a225459 | |||
24f6345505 | |||
c7cd262a06 | |||
1caf9f296b | |||
8870b9e831 | |||
38ce2658cd | |||
43e85a6648 | |||
eb5b530be3 | |||
6cb1ced84f | |||
1ae660572f | |||
1bc727fc2f | |||
ecc9fc1e49 | |||
61bf3050f3 | |||
7f6f692916 | |||
07eb711ec6 | |||
7e8314eb34 | |||
378a47e80a | |||
3138893026 | |||
adffd04424 | |||
961a541ab4 | |||
06847fe282 | |||
84de545d73 | |||
083123860b | |||
a92ba46c55 | |||
f6c70f9f19 | |||
3351924396 | |||
047c42e7c8 | |||
7b93574bc7 | |||
f4b7ac23b9 | |||
0797de9efe | |||
6d995ae68b | |||
ee7d47f4d6 | |||
e3ed9f557c | |||
9b95549a25 | |||
ed292f62d6 | |||
460c6253c4 | |||
851ac444f4 | |||
ea7adc3c4f | |||
06d0a0eaa3 | |||
af0d956078 | |||
b5d7a0b7cf | |||
b177783770 | |||
60d5765b5a | |||
e0a886d378 | |||
a46700d697 | |||
746d6eb2e2 | |||
416896888d | |||
f7352b73a2 | |||
1b03fa4ab8 | |||
79582ae9af | |||
ef62ce49a1 | |||
1b36107cc2 | |||
df00cad32e | |||
afcbaaf050 | |||
25463ec93e | |||
2fdb64efd6 | |||
7890a1e208 | |||
88d0a427ed | |||
2b962b26a0 | |||
724c623596 | |||
596c63dead | |||
5ff4be2bd2 | |||
0c766339fe | |||
6f9aefde21 | |||
8bb9f473e4 | |||
243e1a909c | |||
100a7f2f8d | |||
680d0e960c | |||
db4ef238bd | |||
ca7c8952ea | |||
2909c7c1d8 | |||
e31e2c0e57 | |||
80b49fb4dc | |||
9c3f5daa16 | |||
6d68e0d4dd | |||
788e5f37d3 | |||
3b9e6a34b8 | |||
78b0755828 | |||
c47beb7091 | |||
a7857e50e4 | |||
c965bec3a1 | |||
d02a91dd2c | |||
110da33aff | |||
606d4b2d54 | |||
ebeae24de4 | |||
3e0e10532d | |||
a3e1ad344b | |||
bfa22a596f | |||
b80894cf07 | |||
ae914db459 | |||
e2ea606a60 | |||
730c49fb2a | |||
b4a32f9e57 | |||
fcfdf89b8e | |||
79396167dd | |||
39888f9358 | |||
5670786bcd | |||
50608a4098 | |||
e7d3d645ae | |||
27a1a3f3eb | |||
6fc53380c6 | |||
a7c4ee41ff | |||
c778f7aff6 | |||
a27c47b2c4 | |||
1aae061d4d | |||
1d81b3b35f | |||
cbb95b6c6a | |||
c4da489a74 | |||
788939b4a7 | |||
b685f90eb7 | |||
b2dd46398f | |||
031fc80059 | |||
3cac5ddd01 | |||
5f5fd0d6e2 | |||
bce8163937 | |||
b53f546d3e | |||
d8f673568b | |||
714a162048 | |||
ae5feb49c2 | |||
aa0c46ffed | |||
3dfed0ef4e | |||
a48bbc70e8 | |||
1a6470fc80 | |||
4b69c4736c | |||
daa04830aa | |||
23a51410ba | |||
7af5e6593f | |||
7e2fe5029a | |||
18cac625e5 | |||
472ce30535 | |||
aaa7a77b5f | |||
8e982692d4 | |||
7c6e8f1490 | |||
e4e9df2259 | |||
559ec3e06d | |||
c65e6b9989 | |||
ad109aba29 | |||
67ee3d6184 | |||
a9147beeb0 | |||
468dccf59d | |||
3fb84bfc79 | |||
0bc735e5aa | |||
6a2f43ce64 | |||
38d854e425 | |||
e3dfc5901f | |||
09dee9ab25 | |||
5179183b49 | |||
deb3bce1a2 | |||
60d7ec80d9 | |||
c61dd7f4d2 | |||
f2107d57e4 | |||
abfc0a6d59 | |||
8d92151c66 | |||
aebfe832b8 | |||
90a65a4aab | |||
42ceb0fd7f | |||
18907920bb | |||
7b1401e965 | |||
3c8149a0f2 | |||
08601fdc68 | |||
f4001a3d12 | |||
8d3743868e | |||
c416ff5ffa | |||
09fc30c4c7 | |||
8df052e2ae | |||
79bbee8368 | |||
884e1e930b | |||
4f328761f3 | |||
c4fdce5cea | |||
b9bc216fdd | |||
2ddb73ddd3 | |||
c9251518b0 | |||
795795ae99 | |||
bbfeea269e | |||
6d3162acf1 | |||
8ff8ada6ee | |||
a290710b1b | |||
f915f220c0 | |||
469fd109cd | |||
1b2500c6bf | |||
1514448dad |
2
.mailmap
2
.mailmap
@ -1,7 +1,9 @@
|
||||
# Map git author names and email addresses to canonical/preferred form.
|
||||
<ak@linux.intel.com> <ak@suse.de>
|
||||
<dgilbert@redhat.com> <dave@treblig.org>
|
||||
<holger@freyther.de> <zecke@selfish.org>
|
||||
<kirill@shutemov.name> <kirill.shutemov@linux.intel.com>
|
||||
<schwab@linux-m68k.org> <schwab@redhat.com>
|
||||
<schwab@linux-m68k.org> <schwab@suse.de>
|
||||
<vda.linux@googlemail.com> <dvlasenk@redhat.com>
|
||||
Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||
|
@ -39,3 +39,6 @@ matrix:
|
||||
- compiler: clang-3.6
|
||||
env:
|
||||
- TARGET=x86
|
||||
- compiler: musl-gcc
|
||||
env:
|
||||
- TARGET=x86
|
||||
|
42
Makefile.am
42
Makefile.am
@ -112,8 +112,9 @@ strace_SOURCES = \
|
||||
fetch_struct_flock.c \
|
||||
fetch_struct_mmsghdr.c \
|
||||
fetch_struct_msghdr.c \
|
||||
fetch_struct_stat.c \
|
||||
fetch_struct_stat64.c \
|
||||
fetch_struct_statfs.c \
|
||||
file.c \
|
||||
file_handle.c \
|
||||
file_ioctl.c \
|
||||
fs_x_ioctl.c \
|
||||
@ -147,6 +148,7 @@ strace_SOURCES = \
|
||||
link.c \
|
||||
linux/asm_stat.h \
|
||||
linux/x32/asm_stat.h \
|
||||
linux/x86_64/asm_stat.h \
|
||||
lookup_dcookie.c \
|
||||
loop.c \
|
||||
lseek.c \
|
||||
@ -165,6 +167,7 @@ strace_SOURCES = \
|
||||
net.c \
|
||||
netlink.c \
|
||||
numa.c \
|
||||
oldstat.c \
|
||||
open.c \
|
||||
or1k_atomic.c \
|
||||
pathtrace.c \
|
||||
@ -176,13 +179,13 @@ strace_SOURCES = \
|
||||
print_msgbuf.c \
|
||||
print_sigevent.c \
|
||||
print_statfs.c \
|
||||
print_struct_stat.c \
|
||||
print_time.c \
|
||||
print_timex.c \
|
||||
printmode.c \
|
||||
printrusage.c \
|
||||
printsiginfo.c \
|
||||
printsiginfo.h \
|
||||
printstat.h \
|
||||
process.c \
|
||||
process_vm.c \
|
||||
ptp.c \
|
||||
@ -209,6 +212,9 @@ strace_SOURCES = \
|
||||
sockaddr.c \
|
||||
socketutils.c \
|
||||
sram_alloc.c \
|
||||
stat.c \
|
||||
stat.h \
|
||||
stat64.c \
|
||||
statfs.c \
|
||||
statfs.h \
|
||||
strace.c \
|
||||
@ -250,7 +256,7 @@ endif
|
||||
@CODE_COVERAGE_RULES@
|
||||
CODE_COVERAGE_BRANCH_COVERAGE = 1
|
||||
CODE_COVERAGE_GENHTML_OPTIONS = $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) \
|
||||
--prefix $(shell realpath -Ls $(abs_top_srcdir)/..)
|
||||
--prefix $(shell cd $(abs_top_srcdir)/.. && pwd || echo .)
|
||||
CODE_COVERAGE_IGNORE_PATTERN = '/usr/include/*'
|
||||
strace_CPPFLAGS += $(CODE_COVERAGE_CPPFLAGS)
|
||||
strace_CFLAGS += $(CODE_COVERAGE_CFLAGS)
|
||||
@ -497,6 +503,18 @@ EXTRA_DIST = \
|
||||
linux/powerpc64/syscallent1.h \
|
||||
linux/powerpc64/userent.h \
|
||||
linux/ptp_clock.h \
|
||||
linux/riscv/arch_regs.c \
|
||||
linux/riscv/errnoent1.h \
|
||||
linux/riscv/get_error.c \
|
||||
linux/riscv/get_scno.c \
|
||||
linux/riscv/get_syscall_args.c \
|
||||
linux/riscv/ioctls_arch0.h \
|
||||
linux/riscv/ioctls_arch1.h \
|
||||
linux/riscv/ioctls_inc0.h \
|
||||
linux/riscv/ioctls_inc1.h \
|
||||
linux/riscv/signalent1.h \
|
||||
linux/riscv/syscallent.h \
|
||||
linux/riscv/syscallent1.h \
|
||||
linux/s390/arch_regs.c \
|
||||
linux/s390/arch_regs.h \
|
||||
linux/s390/arch_sigreturn.c \
|
||||
@ -713,7 +731,7 @@ ioctl_redefs_h = $(filter-out ioctl_redefs0.h,$(subst ioctlent,ioctl_redefs,$(io
|
||||
ioctl_redefs%.h: ioctlent%.h ioctlent0.h
|
||||
sort $< > $<-t
|
||||
sort ioctlent0.h | comm -23 $<-t - | \
|
||||
sed -n 's/^{ "\([^"]\+\)", \(0x[[:xdigit:]]\+\) },$$/#ifdef \1\n# undef \1\n# define \1 \2\n#endif/p' \
|
||||
sed -r -n 's/^\{ "([^"]+)", (0x[[:xdigit:]]+) \},$$/#ifdef \1\n# undef \1\n# define \1 \2\n#endif/p' \
|
||||
> $@-t
|
||||
rm -f $<-t
|
||||
mv $@-t $@
|
||||
@ -754,7 +772,7 @@ libmpers_CFLAGS = $(strace_CFLAGS)
|
||||
|
||||
mpers-m%.stamp: $(srcdir_mpers_source_files) | printers.h
|
||||
for f in $^; do \
|
||||
CC="$(CC)" CFLAGS="$(mpers_sh_opts)" \
|
||||
CC="$(CC)" CFLAGS="$(mpers_sh_opts) -DMPERS_IS_$(mpers_NAME)" \
|
||||
CPP="$(CPP)" CPPFLAGS="$(mpers_sh_opts) -DIN_MPERS -DMPERS_IS_$(mpers_NAME)" \
|
||||
$(srcdir)/mpers.sh -$(mpers_NAME) $$f || exit; \
|
||||
done
|
||||
@ -762,7 +780,7 @@ mpers-m%.stamp: $(srcdir_mpers_source_files) | printers.h
|
||||
|
||||
m%_type_defs.h: $(srcdir_mpers_source_files)
|
||||
for f in $^; do \
|
||||
sed -n 's/^#include DEF_MPERS_TYPE(\([^)]\+\))/#ifdef MPERS_$(mpers_PREFIX)\1\n# define \1 MPERS_$(mpers_PREFIX)\1\n#endif/p' $$f || exit; \
|
||||
sed -r -n 's/^#include DEF_MPERS_TYPE\(([^)]+)\)/#ifdef MPERS_$(mpers_PREFIX)\1\n# define \1 MPERS_$(mpers_PREFIX)\1\n#endif/p' $$f || exit; \
|
||||
done > $@-t
|
||||
echo '#undef MPERS_PRINTER_NAME' >> $@-t
|
||||
echo '#define MPERS_PRINTER_NAME(printer_name) printer_name' >> $@-t
|
||||
@ -772,7 +790,7 @@ m%_type_defs.h: $(srcdir_mpers_source_files)
|
||||
|
||||
m%_funcs.h: $(srcdir_mpers_source_files)
|
||||
for f in $^; do \
|
||||
sed -n 's/^SYS_FUNC(\([^)]\+\))/#undef sys_\1\n#define sys_\1 $(mpers_PREFIX)sys_\1/p' $$f || exit; \
|
||||
sed -r -n 's/^SYS_FUNC\(([^)]+)\)/#undef sys_\1\n#define sys_\1 $(mpers_PREFIX)sys_\1/p' $$f || exit; \
|
||||
done > $@-t && \
|
||||
echo '#include "sys_func.h"' >> $@-t
|
||||
mv $@-t $@
|
||||
@ -782,13 +800,13 @@ m%_funcs.h: $(srcdir_mpers_source_files)
|
||||
%.c.mpers.i: $(srcdir)/%.c
|
||||
$(CPP) -P $(mpers_sh_opts) -DIN_MPERS_BOOTSTRAP $< -o $@
|
||||
|
||||
mpers_printer_decl_pattern = ^MPERS_PRINTER_DECL(\([^,)]\+\),[[:space:]]*\([^,)]\+\),[[:space:]]*\([^)]\+\))$$
|
||||
mpers_printer_decl_pattern = ^MPERS_PRINTER_DECL\(([^,)]+),[[:space:]]*([^,)]+),[[:space:]]*([^)]+)\)$$
|
||||
|
||||
printers.h: $(mpers_preproc_files)
|
||||
echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
|
||||
echo 'typedef struct {' >> $@-t
|
||||
for f in $^; do \
|
||||
sed -n 's/$(mpers_printer_decl_pattern)/ \1 (*\2)(\3);\n#define \2 MPERS_PRINTER_NAME(\2)\n/p' $$f \
|
||||
sed -r -n 's/$(mpers_printer_decl_pattern)/ \1 (*\2)(\3);\n#define \2 MPERS_PRINTER_NAME(\2)\n/p' $$f \
|
||||
|| exit; \
|
||||
done >> $@-t
|
||||
echo '} struct_printers;' >> $@-t
|
||||
@ -799,7 +817,7 @@ printers.h: $(mpers_preproc_files)
|
||||
%_printer_decls.h: $(mpers_preproc_files)
|
||||
echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
|
||||
for f in $^; do \
|
||||
sed -n 's/$(mpers_printer_decl_pattern)/extern \1 $(mpers_PREFIX)\2(\3);/p' $$f \
|
||||
sed -r -n 's/$(mpers_printer_decl_pattern)/extern \1 $(mpers_PREFIX)\2(\3);/p' $$f \
|
||||
|| exit; \
|
||||
done >> $@-t
|
||||
mv $@-t $@
|
||||
@ -807,7 +825,7 @@ printers.h: $(mpers_preproc_files)
|
||||
%_printer_defs.h: $(mpers_preproc_files)
|
||||
echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
|
||||
for f in $^; do \
|
||||
sed -n 's/$(mpers_printer_decl_pattern)/\.\2 = $(mpers_PREFIX)\2,/p' $$f \
|
||||
sed -r -n 's/$(mpers_printer_decl_pattern)/.\2 = $(mpers_PREFIX)\2,/p' $$f \
|
||||
|| exit; \
|
||||
done >> $@-t
|
||||
mv $@-t $@
|
||||
@ -869,7 +887,7 @@ $(srcdir)/CREDITS: $(srcdir)/CREDITS.in $(srcdir)/.mailmap \
|
||||
( \
|
||||
cd $(srcdir); \
|
||||
sed '/^##/,$$d' CREDITS.in; \
|
||||
{ sed -n '1,/^##>/d; s/ \+/\t/; s/^./&/p' 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)}'; \
|
||||
|
37
NEWS
37
NEWS
@ -1,3 +1,40 @@
|
||||
Noteworthy changes in release 4.14 (2016-10-04)
|
||||
===============================================
|
||||
|
||||
* Changes in behavior
|
||||
* When using -p option without a command and no processes has been attached,
|
||||
strace exits with exit status 1.
|
||||
|
||||
* Improvements
|
||||
* Added printing of the mode argument of open and openat syscalls
|
||||
when O_TMPFILE flag is set. (Addresses Fedora bug #1377846).
|
||||
* Enhanced -e abbrev=set, -e raw=set, and -e verbose=set.
|
||||
* Enhanced decoding of futex, keyctl, quotactl, timerfd_settime,
|
||||
and aio family syscalls.
|
||||
* Implemented fetching of the 7th subcall argument on mips o32.
|
||||
* Updated lists of BPF_*, ETH_P_*, KEXEC_ARCH_*, SCTP_*, TCP_*, and *_MAGIC
|
||||
constants.
|
||||
* Updated lists of ioctl commands from Linux 4.8.
|
||||
* Added decoding of new syscalls on sh and sh64.
|
||||
* Added RISC-V architecture support.
|
||||
|
||||
* Bug fixes
|
||||
* Marked io_setup and io_destroy as memory mapping related syscalls.
|
||||
* Fixed leakage of placeholder descriptors to tracees.
|
||||
* Fixed printing of mode_t, umode_t, and umask types.
|
||||
* Fixed decoding of iovec arrays without a limit on total data size.
|
||||
* Fixed decoding of fadvise64, fallocate, futex, keyctl, quotactl, readahead,
|
||||
and ipc family syscalls.
|
||||
* Fixed decoding of invalid syscalls mapped to indirect subcalls.
|
||||
* Fixed decoding of struct btrfs_ioctl_vol_args_v2 on non-native
|
||||
personalities.
|
||||
* Fixed decoding of PTRACE_DETACH on sparc and sparc64.
|
||||
* Fixed decoding of struct stat64 on sparc64.
|
||||
* Fixed decoding of uid and gid-related syscalls on sparc64.
|
||||
* Fixed decoding of the forth argument of semctl syscall on sparc64.
|
||||
* Fixed values of tty ioctl constants on sparc64.
|
||||
* Fixed sparc personality support on sparc64.
|
||||
|
||||
Noteworthy changes in release 4.13 (2016-07-26)
|
||||
===============================================
|
||||
|
||||
|
36
aio.c
36
aio.c
@ -36,13 +36,13 @@ SYS_FUNC(io_setup)
|
||||
if (entering(tcp))
|
||||
tprintf("%u, ", (unsigned int) tcp->u_arg[0]);
|
||||
else
|
||||
printnum_ulong(tcp, tcp->u_arg[1]);
|
||||
printnum_ptr(tcp, tcp->u_arg[1]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
SYS_FUNC(io_destroy)
|
||||
{
|
||||
tprintf("%lu", tcp->u_arg[0]);
|
||||
printaddr(tcp->u_arg[0]);
|
||||
|
||||
return RVAL_DECODED;
|
||||
}
|
||||
@ -78,12 +78,14 @@ tprint_lio_opcode(unsigned cmd)
|
||||
}
|
||||
|
||||
static void
|
||||
print_common_flags(const struct iocb *cb)
|
||||
print_common_flags(struct tcb *tcp, const struct iocb *cb)
|
||||
{
|
||||
/* IOCB_FLAG_RESFD is available since v2.6.22-rc1~47 */
|
||||
#ifdef IOCB_FLAG_RESFD
|
||||
if (cb->aio_flags & IOCB_FLAG_RESFD)
|
||||
tprintf(", resfd=%d", cb->aio_resfd);
|
||||
if (cb->aio_flags & IOCB_FLAG_RESFD) {
|
||||
tprints(", resfd=");
|
||||
printfd(tcp, cb->aio_resfd);
|
||||
}
|
||||
if (cb->aio_flags & ~IOCB_FLAG_RESFD)
|
||||
tprintf(", flags=%x", cb->aio_flags);
|
||||
#endif
|
||||
@ -98,7 +100,7 @@ iocb_is_valid(const struct iocb *cb)
|
||||
}
|
||||
|
||||
static enum iocb_sub
|
||||
print_iocb_header(const struct iocb *cb)
|
||||
print_iocb_header(struct tcb *tcp, const struct iocb *cb)
|
||||
{
|
||||
enum iocb_sub sub;
|
||||
|
||||
@ -113,7 +115,8 @@ print_iocb_header(const struct iocb *cb)
|
||||
if (cb->aio_reqprio)
|
||||
tprintf(", reqprio=%hd", cb->aio_reqprio);
|
||||
|
||||
tprintf(", fildes=%d", cb->aio_fildes);
|
||||
tprints(", fildes=");
|
||||
printfd(tcp, cb->aio_fildes);
|
||||
|
||||
return sub;
|
||||
}
|
||||
@ -121,7 +124,7 @@ print_iocb_header(const struct iocb *cb)
|
||||
static void
|
||||
print_iocb(struct tcb *tcp, const struct iocb *cb)
|
||||
{
|
||||
enum iocb_sub sub = print_iocb_header(cb);
|
||||
enum iocb_sub sub = print_iocb_header(tcp, cb);
|
||||
|
||||
switch (sub) {
|
||||
case SUB_COMMON:
|
||||
@ -134,7 +137,7 @@ print_iocb(struct tcb *tcp, const struct iocb *cb)
|
||||
}
|
||||
tprintf(", nbytes=%" PRIu64 ", offset=%" PRId64,
|
||||
(uint64_t) cb->aio_nbytes, (int64_t) cb->aio_offset);
|
||||
print_common_flags(cb);
|
||||
print_common_flags(tcp, cb);
|
||||
break;
|
||||
case SUB_VECTOR:
|
||||
if (iocb_is_valid(cb)) {
|
||||
@ -149,7 +152,7 @@ print_iocb(struct tcb *tcp, const struct iocb *cb)
|
||||
(uint64_t) cb->aio_nbytes);
|
||||
}
|
||||
tprintf(", offset=%" PRId64, (int64_t) cb->aio_offset);
|
||||
print_common_flags(cb);
|
||||
print_common_flags(tcp, cb);
|
||||
break;
|
||||
case SUB_NONE:
|
||||
break;
|
||||
@ -182,7 +185,8 @@ SYS_FUNC(io_submit)
|
||||
const unsigned long addr = tcp->u_arg[2];
|
||||
unsigned long iocbp;
|
||||
|
||||
tprintf("%lu, %ld, ", tcp->u_arg[0], nr);
|
||||
printaddr(tcp->u_arg[0]);
|
||||
tprintf(", %ld, ", nr);
|
||||
|
||||
if (nr < 0)
|
||||
printaddr(addr);
|
||||
@ -209,12 +213,14 @@ print_io_event(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
|
||||
SYS_FUNC(io_cancel)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
tprintf("%lu, ", tcp->u_arg[0]);
|
||||
printaddr(tcp->u_arg[0]);
|
||||
tprints(", ");
|
||||
|
||||
struct iocb cb;
|
||||
|
||||
if (!umove_or_printaddr(tcp, tcp->u_arg[1], &cb)) {
|
||||
tprints("{");
|
||||
print_iocb_header(&cb);
|
||||
print_iocb_header(tcp, &cb);
|
||||
tprints("}");
|
||||
}
|
||||
tprints(", ");
|
||||
@ -230,8 +236,8 @@ SYS_FUNC(io_cancel)
|
||||
SYS_FUNC(io_getevents)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
tprintf("%lu, %ld, %ld, ",
|
||||
tcp->u_arg[0],
|
||||
printaddr(tcp->u_arg[0]);
|
||||
tprintf(", %ld, %ld, ",
|
||||
widen_to_long(tcp->u_arg[1]),
|
||||
widen_to_long(tcp->u_arg[2]));
|
||||
} else {
|
||||
|
@ -5,7 +5,9 @@ for m in m32 mx32; do
|
||||
rm -rf $tests
|
||||
mkdir $tests
|
||||
s='[[:space:]]*'
|
||||
sed "s/@arch@/@arch_$m@/;s/^MPERS_NAME$s=.*/& $m/;s/^ARCH_MFLAGS$s=.*/& -$m/" \
|
||||
sed "s/@arch@/@arch_$m@/;
|
||||
s/^MPERS_NAME$s=.*/& $m/;
|
||||
s/^ARCH_MFLAGS$s=.*/& -DMPERS_IS_\$(MPERS_NAME) -$m/" \
|
||||
tests/Makefile.am > $tests/Makefile.am
|
||||
for f in tests/*; do
|
||||
case "${f##*/}" in
|
||||
|
21
btrfs.c
21
btrfs.c
@ -32,6 +32,7 @@
|
||||
#include DEF_MPERS_TYPE(struct_btrfs_ioctl_dev_replace_args)
|
||||
#include DEF_MPERS_TYPE(struct_btrfs_ioctl_send_args)
|
||||
#include DEF_MPERS_TYPE(struct_btrfs_ioctl_received_subvol_args)
|
||||
#include DEF_MPERS_TYPE(struct_btrfs_ioctl_vol_args_v2)
|
||||
|
||||
# include <linux/btrfs.h>
|
||||
|
||||
@ -41,6 +42,8 @@ typedef struct btrfs_ioctl_send_args
|
||||
struct_btrfs_ioctl_send_args;
|
||||
typedef struct btrfs_ioctl_received_subvol_args
|
||||
struct_btrfs_ioctl_received_subvol_args;
|
||||
typedef struct btrfs_ioctl_vol_args_v2
|
||||
struct_btrfs_ioctl_vol_args_v2;
|
||||
|
||||
#endif /* HAVE_LINUX_BTRFS_H */
|
||||
|
||||
@ -373,14 +376,14 @@ print_uint64(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
|
||||
}
|
||||
|
||||
static void
|
||||
btrfs_print_qgroup_inherit(struct tcb *tcp, const uint64_t qgi_addr)
|
||||
btrfs_print_qgroup_inherit(struct tcb *tcp, const unsigned long qgi_addr)
|
||||
{
|
||||
struct btrfs_qgroup_inherit inherit;
|
||||
|
||||
if (umove_or_printaddr(tcp, qgi_addr, &inherit))
|
||||
return;
|
||||
|
||||
tprintf("{flags=");
|
||||
tprints("{flags=");
|
||||
printflags64(btrfs_qgroup_inherit_flags, inherit.flags,
|
||||
"BTRFS_QGROUP_INHERIT_???");
|
||||
tprintf(", num_qgroups=%" PRI__u64 ", num_ref_copies=%" PRI__u64
|
||||
@ -420,7 +423,7 @@ btrfs_print_tree_search(struct tcb *tcp, struct btrfs_ioctl_search_key *key,
|
||||
uint64_t buf_addr, uint64_t buf_size, bool print_size)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
tprintf("{key={tree_id=");
|
||||
tprints("{key={tree_id=");
|
||||
btrfs_print_objectid(key->tree_id);
|
||||
|
||||
if (key->min_objectid != BTRFS_FIRST_FREE_OBJECTID ||
|
||||
@ -1294,7 +1297,7 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
|
||||
|
||||
case BTRFS_IOC_SNAP_CREATE_V2:
|
||||
case BTRFS_IOC_SUBVOL_CREATE_V2: { /* code is W, but is actually RW */
|
||||
struct btrfs_ioctl_vol_args_v2 args;
|
||||
struct_btrfs_ioctl_vol_args_v2 args;
|
||||
|
||||
if (entering(tcp))
|
||||
tprints(", ");
|
||||
@ -1313,19 +1316,19 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
|
||||
printflags64(btrfs_snap_flags_v2, args.flags,
|
||||
"BTRFS_SUBVOL_???");
|
||||
if (args.flags & BTRFS_SUBVOL_QGROUP_INHERIT) {
|
||||
tprintf(", size=%" PRI__u64 ", qgroup_inherit=",
|
||||
args.size);
|
||||
tprintf(", size=%llu, qgroup_inherit=",
|
||||
(unsigned long long) args.size);
|
||||
|
||||
btrfs_print_qgroup_inherit(tcp,
|
||||
(unsigned long)args.qgroup_inherit);
|
||||
(unsigned long) args.qgroup_inherit);
|
||||
}
|
||||
tprintf(", name=");
|
||||
tprints(", name=");
|
||||
print_quoted_string(args.name, sizeof(args.name),
|
||||
QUOTE_0_TERMINATED);
|
||||
tprints("}");
|
||||
return 0;
|
||||
}
|
||||
tprintf("{transid=%" PRI__u64 "}", args.transid);
|
||||
tprintf("{transid=%llu}", (unsigned long long) args.transid);
|
||||
break;
|
||||
}
|
||||
|
||||
|
6
chmod.c
6
chmod.c
@ -4,7 +4,8 @@ static void
|
||||
decode_chmod(struct tcb *tcp, const int offset)
|
||||
{
|
||||
printpath(tcp, tcp->u_arg[offset]);
|
||||
tprintf(", %#lo", tcp->u_arg[offset + 1]);
|
||||
tprints(", ");
|
||||
print_numeric_umode_t(tcp->u_arg[offset + 1]);
|
||||
}
|
||||
|
||||
SYS_FUNC(chmod)
|
||||
@ -25,7 +26,8 @@ SYS_FUNC(fchmodat)
|
||||
SYS_FUNC(fchmod)
|
||||
{
|
||||
printfd(tcp, tcp->u_arg[0]);
|
||||
tprintf(", %#lo", tcp->u_arg[1]);
|
||||
tprints(", ");
|
||||
print_numeric_umode_t(tcp->u_arg[1]);
|
||||
|
||||
return RVAL_DECODED;
|
||||
}
|
||||
|
10
clone.c
10
clone.c
@ -42,10 +42,10 @@
|
||||
#if defined IA64
|
||||
# define ARG_FLAGS 0
|
||||
# define ARG_STACK 1
|
||||
# define ARG_STACKSIZE (tcp->scno == SYS_clone2 ? 2 : -1)
|
||||
# define ARG_PTID (tcp->scno == SYS_clone2 ? 3 : 2)
|
||||
# define ARG_CTID (tcp->scno == SYS_clone2 ? 4 : 3)
|
||||
# define ARG_TLS (tcp->scno == SYS_clone2 ? 5 : 4)
|
||||
# define ARG_STACKSIZE (tcp->scno == __NR_clone2 ? 2 : -1)
|
||||
# define ARG_PTID (tcp->scno == __NR_clone2 ? 3 : 2)
|
||||
# define ARG_CTID (tcp->scno == __NR_clone2 ? 4 : 3)
|
||||
# define ARG_TLS (tcp->scno == __NR_clone2 ? 5 : 4)
|
||||
#elif defined S390 || defined S390X || defined CRISV10 || defined CRISV32
|
||||
# define ARG_STACK 0
|
||||
# define ARG_FLAGS 1
|
||||
@ -59,7 +59,7 @@
|
||||
# define ARG_PTID 2
|
||||
# define ARG_CTID ((current_personality != 1) ? 3 : 4)
|
||||
# define ARG_TLS ((current_personality != 1) ? 4 : 3)
|
||||
#elif defined ALPHA || defined TILE || defined OR1K
|
||||
#elif defined ALPHA || defined TILE || defined OR1K || defined RISCV
|
||||
# define ARG_FLAGS 0
|
||||
# define ARG_STACK 1
|
||||
# define ARG_PTID 2
|
||||
|
49
configure.ac
49
configure.ac
@ -187,6 +187,11 @@ xtensa*)
|
||||
AC_DEFINE([XTENSA], 1, [Define for the Xtensa architecture])
|
||||
;;
|
||||
|
||||
riscv*)
|
||||
arch=riscv
|
||||
AC_DEFINE([RISCV], 1, [Define for the RISC-V architecture])
|
||||
;;
|
||||
|
||||
*)
|
||||
AC_MSG_RESULT([NO!])
|
||||
AC_MSG_ERROR([architecture $host_cpu is not supported by strace])
|
||||
@ -202,6 +207,7 @@ AC_SUBST(arch)
|
||||
AC_SUBST(arch_m32)
|
||||
AC_SUBST(arch_mx32)
|
||||
|
||||
MIPS_ABI=
|
||||
if test "$arch" = mips; then
|
||||
AC_CACHE_CHECK([for _MIPS_SIM], [st_cv__MIPS_SIM],
|
||||
[AC_COMPUTE_INT([st_cv__MIPS_SIM], [_MIPS_SIM],
|
||||
@ -229,7 +235,9 @@ if test "$arch" = mips; then
|
||||
n64) AC_DEFINE([LINUX_MIPSN64], [1], [Define for _MIPS_SIM_ABI64.]);;
|
||||
*) AC_MSG_ERROR([Unsupported _MIPS_SIM]);;
|
||||
esac
|
||||
MIPS_ABI="$st_cv_mips_abi"
|
||||
fi
|
||||
AC_SUBST(MIPS_ABI)
|
||||
|
||||
AC_ARG_ENABLE([arm-oabi],
|
||||
[AS_HELP_STRING([--enable-arm-oabi],
|
||||
@ -267,22 +275,13 @@ AC_ARG_ENABLE([gcc-Werror],
|
||||
AC_SUBST([WARN_CFLAGS])
|
||||
|
||||
AC_C_BIGENDIAN
|
||||
AC_C_CONST
|
||||
AC_C_TYPEOF
|
||||
|
||||
AC_TYPE_GETGROUPS
|
||||
AC_TYPE_MODE_T
|
||||
AC_TYPE_SIGNAL
|
||||
AC_TYPE_UID_T
|
||||
|
||||
AC_HEADER_DIRENT
|
||||
AC_HEADER_MAJOR
|
||||
AC_HEADER_STAT
|
||||
AC_HEADER_STDBOOL
|
||||
AC_HEADER_STDC
|
||||
|
||||
AC_CHECK_FUNCS(m4_normalize([
|
||||
accept4
|
||||
fallocate
|
||||
fanotify_mark
|
||||
fopen64
|
||||
fork
|
||||
@ -297,7 +296,7 @@ AC_CHECK_FUNCS(m4_normalize([
|
||||
preadv
|
||||
process_vm_readv
|
||||
pwritev
|
||||
sigaction
|
||||
readahead
|
||||
signalfd
|
||||
stpcpy
|
||||
strerror
|
||||
@ -317,6 +316,12 @@ AC_CHECK_TYPES([struct stat64, struct __old_kernel_stat],,,
|
||||
[#include <sys/types.h>
|
||||
#include <asm/stat.h>])
|
||||
|
||||
AC_CHECK_MEMBERS([struct stat.st_mtime_nsec, struct stat64.st_mtime_nsec],,,
|
||||
[#include <sys/types.h>
|
||||
#include <asm/stat.h>])
|
||||
|
||||
AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec])
|
||||
|
||||
AC_CHECK_TYPES(m4_normalize([
|
||||
struct pt_all_user_regs,
|
||||
struct ia64_fpreg,
|
||||
@ -332,29 +337,10 @@ AC_CHECK_TYPES(m4_normalize([
|
||||
[#include <sys/types.h>
|
||||
#include <linux/fcntl.h>])
|
||||
|
||||
AC_CHECK_MEMBERS(m4_normalize([
|
||||
struct stat.st_atim.tv_nsec,
|
||||
struct stat.st_blksize,
|
||||
struct stat.st_blocks,
|
||||
struct stat.st_ctim.tv_nsec,
|
||||
struct stat.st_flags,
|
||||
struct stat.st_fstype,
|
||||
struct stat.st_gen,
|
||||
struct stat.st_mtim.tv_nsec,
|
||||
struct stat.st_rdev
|
||||
]))
|
||||
|
||||
AC_CHECK_MEMBERS([struct timex.tai],,, [#include <sys/timex.h>])
|
||||
|
||||
AC_CHECK_MEMBERS([struct utsname.domainname],,, [#include <sys/utsname.h>])
|
||||
|
||||
AC_CHECK_MEMBERS(m4_normalize([
|
||||
struct stat.st_atime_nsec,
|
||||
struct stat.st_ctime_nsec,
|
||||
struct stat.st_mtime_nsec
|
||||
]),,, [#include <sys/types.h>
|
||||
#include <asm/stat.h>])
|
||||
|
||||
AC_CHECK_MEMBERS(m4_normalize([
|
||||
siginfo_t.si_syscall,
|
||||
siginfo_t.si_timerid,
|
||||
@ -368,6 +354,7 @@ AC_CHECK_HEADERS(m4_normalize([
|
||||
elf.h
|
||||
inttypes.h
|
||||
linux/bsg.h
|
||||
linux/dqblk_xfs.h
|
||||
linux/falloc.h
|
||||
linux/fiemap.h
|
||||
linux/filter.h
|
||||
@ -377,6 +364,7 @@ AC_CHECK_HEADERS(m4_normalize([
|
||||
linux/mmtimer.h
|
||||
linux/msg.h
|
||||
linux/perf_event.h
|
||||
linux/quota.h
|
||||
linux/seccomp.h
|
||||
linux/securebits.h
|
||||
linux/sem.h
|
||||
@ -393,6 +381,7 @@ AC_CHECK_HEADERS(m4_normalize([
|
||||
sys/fanotify.h
|
||||
sys/ipc.h
|
||||
sys/msg.h
|
||||
sys/quota.h
|
||||
sys/reg.h
|
||||
sys/sem.h
|
||||
sys/shm.h
|
||||
|
6
debian/changelog.in
vendored
6
debian/changelog.in
vendored
@ -4,6 +4,12 @@ strace (@PACKAGE_VERSION@-1) experimental; urgency=low
|
||||
|
||||
-- Strace <@PACKAGE_BUGREPORT@> @DEB_CHANGELOGTIME@
|
||||
|
||||
strace (4.13-1) unstable; urgency=medium
|
||||
|
||||
* New upstream version.
|
||||
|
||||
-- Dmitry V. Levin <ldv@altlinux.org> Tue, 26 Jul 2016 16:17:18 +0000
|
||||
|
||||
strace (4.12-3) unstable; urgency=medium
|
||||
|
||||
* Fix up 32/64-bit test output in strace -S test to fix i386 build
|
||||
|
217
defs.h
217
defs.h
@ -27,20 +27,19 @@
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef STRACE_DEFS_H
|
||||
#define STRACE_DEFS_H
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include <features.h>
|
||||
#ifdef HAVE_STDBOOL_H
|
||||
# include <stdbool.h>
|
||||
#endif
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <inttypes.h>
|
||||
#include <sys/types.h>
|
||||
#ifdef STDC_HEADERS
|
||||
# include <stddef.h>
|
||||
#endif
|
||||
#include <stddef.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
@ -52,7 +51,7 @@
|
||||
#include <errno.h>
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <asm/unistd.h>
|
||||
|
||||
#include "mpers_type.h"
|
||||
#include "gcc_compat.h"
|
||||
@ -69,11 +68,6 @@ const char *strerror(int);
|
||||
extern char *stpcpy(char *dst, const char *src);
|
||||
#endif
|
||||
|
||||
#ifndef offsetof
|
||||
# define offsetof(type, member) \
|
||||
(((char *) &(((type *) NULL)->member)) - ((char *) (type *) NULL))
|
||||
#endif
|
||||
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||
|
||||
/* macros */
|
||||
@ -148,130 +142,53 @@ extern char *stpcpy(char *dst, const char *src);
|
||||
# define ERESTART_RESTARTBLOCK 516
|
||||
#endif
|
||||
|
||||
#if defined(SPARC) || defined(SPARC64)
|
||||
# define PERSONALITY0_WORDSIZE 4
|
||||
# if defined(SPARC64)
|
||||
# define SUPPORTED_PERSONALITIES 2
|
||||
# define PERSONALITY1_WORDSIZE 8
|
||||
# ifdef HAVE_M32_MPERS
|
||||
# define PERSONALITY1_INCLUDE_FUNCS "m32_funcs.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DECLS "m32_printer_decls.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DEFS "m32_printer_defs.h"
|
||||
# define MPERS_m32_IOCTL_MACROS "ioctl_redefs1.h"
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef X86_64
|
||||
#if defined X86_64
|
||||
# define SUPPORTED_PERSONALITIES 3
|
||||
# define PERSONALITY0_WORDSIZE 8
|
||||
# define PERSONALITY1_WORDSIZE 4
|
||||
# define PERSONALITY2_WORDSIZE 4
|
||||
# ifdef HAVE_M32_MPERS
|
||||
# define PERSONALITY1_INCLUDE_FUNCS "m32_funcs.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DECLS "m32_printer_decls.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DEFS "m32_printer_defs.h"
|
||||
# define MPERS_m32_IOCTL_MACROS "ioctl_redefs1.h"
|
||||
# endif
|
||||
# ifdef HAVE_MX32_MPERS
|
||||
# define PERSONALITY2_INCLUDE_FUNCS "mx32_funcs.h"
|
||||
# define PERSONALITY2_INCLUDE_PRINTERS_DECLS "mx32_printer_decls.h"
|
||||
# define PERSONALITY2_INCLUDE_PRINTERS_DEFS "mx32_printer_defs.h"
|
||||
# define MPERS_mx32_IOCTL_MACROS "ioctl_redefs2.h"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef X32
|
||||
#elif defined AARCH64 \
|
||||
|| defined POWERPC64 \
|
||||
|| defined RISCV \
|
||||
|| defined SPARC64 \
|
||||
|| defined TILE \
|
||||
|| defined X32
|
||||
# define SUPPORTED_PERSONALITIES 2
|
||||
# define PERSONALITY0_WORDSIZE 4
|
||||
# define PERSONALITY1_WORDSIZE 4
|
||||
# ifdef HAVE_M32_MPERS
|
||||
# define PERSONALITY1_INCLUDE_FUNCS "m32_funcs.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DECLS "m32_printer_decls.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DEFS "m32_printer_defs.h"
|
||||
# define MPERS_m32_IOCTL_MACROS "ioctl_redefs1.h"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef ARM
|
||||
/* one personality */
|
||||
#endif
|
||||
|
||||
#ifdef AARCH64
|
||||
/* The existing ARM personality, then AArch64 */
|
||||
# define SUPPORTED_PERSONALITIES 2
|
||||
# define PERSONALITY0_WORDSIZE 8
|
||||
# define PERSONALITY1_WORDSIZE 4
|
||||
# ifdef HAVE_M32_MPERS
|
||||
# define PERSONALITY1_INCLUDE_FUNCS "m32_funcs.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DECLS "m32_printer_decls.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DEFS "m32_printer_defs.h"
|
||||
# define MPERS_m32_IOCTL_MACROS "ioctl_redefs1.h"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef POWERPC64
|
||||
# define SUPPORTED_PERSONALITIES 2
|
||||
# define PERSONALITY0_WORDSIZE 8
|
||||
# define PERSONALITY1_WORDSIZE 4
|
||||
# ifdef HAVE_M32_MPERS
|
||||
# define PERSONALITY1_INCLUDE_FUNCS "m32_funcs.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DECLS "m32_printer_decls.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DEFS "m32_printer_defs.h"
|
||||
# define MPERS_m32_IOCTL_MACROS "ioctl_redefs1.h"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef TILE
|
||||
# define SUPPORTED_PERSONALITIES 2
|
||||
# define PERSONALITY0_WORDSIZE 8
|
||||
# define PERSONALITY1_WORDSIZE 4
|
||||
# ifdef __tilepro__
|
||||
# define DEFAULT_PERSONALITY 1
|
||||
# endif
|
||||
# ifdef HAVE_M32_MPERS
|
||||
# define PERSONALITY1_INCLUDE_FUNCS "m32_funcs.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DECLS "m32_printer_decls.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DEFS "m32_printer_defs.h"
|
||||
# define MPERS_m32_IOCTL_MACROS "ioctl_redefs1.h"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef SUPPORTED_PERSONALITIES
|
||||
#else
|
||||
# define SUPPORTED_PERSONALITIES 1
|
||||
#endif
|
||||
#ifndef DEFAULT_PERSONALITY
|
||||
|
||||
#if defined TILE && defined __tilepro__
|
||||
# define DEFAULT_PERSONALITY 1
|
||||
#else
|
||||
# define DEFAULT_PERSONALITY 0
|
||||
#endif
|
||||
#ifndef PERSONALITY0_WORDSIZE
|
||||
# define PERSONALITY0_WORDSIZE SIZEOF_LONG
|
||||
|
||||
#define PERSONALITY0_WORDSIZE SIZEOF_LONG
|
||||
#define PERSONALITY0_INCLUDE_PRINTERS_DECLS "native_printer_decls.h"
|
||||
#define PERSONALITY0_INCLUDE_PRINTERS_DEFS "native_printer_defs.h"
|
||||
|
||||
#if SUPPORTED_PERSONALITIES > 1
|
||||
# define PERSONALITY1_WORDSIZE 4
|
||||
#endif
|
||||
|
||||
#ifndef PERSONALITY0_INCLUDE_PRINTERS_DECLS
|
||||
# define PERSONALITY0_INCLUDE_PRINTERS_DECLS "native_printer_decls.h"
|
||||
#endif
|
||||
#ifndef PERSONALITY0_INCLUDE_PRINTERS_DEFS
|
||||
# define PERSONALITY0_INCLUDE_PRINTERS_DEFS "native_printer_defs.h"
|
||||
#endif
|
||||
|
||||
#ifndef PERSONALITY1_INCLUDE_PRINTERS_DECLS
|
||||
#if SUPPORTED_PERSONALITIES > 1 && defined HAVE_M32_MPERS
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DECLS "m32_printer_decls.h"
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DEFS "m32_printer_defs.h"
|
||||
# define PERSONALITY1_INCLUDE_FUNCS "m32_funcs.h"
|
||||
# define MPERS_m32_IOCTL_MACROS "ioctl_redefs1.h"
|
||||
#else
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DECLS "native_printer_decls.h"
|
||||
#endif
|
||||
#ifndef PERSONALITY1_INCLUDE_PRINTERS_DEFS
|
||||
# define PERSONALITY1_INCLUDE_PRINTERS_DEFS "native_printer_defs.h"
|
||||
#endif
|
||||
|
||||
#ifndef PERSONALITY2_INCLUDE_PRINTERS_DECLS
|
||||
# define PERSONALITY2_INCLUDE_PRINTERS_DECLS "native_printer_decls.h"
|
||||
#endif
|
||||
#ifndef PERSONALITY2_INCLUDE_PRINTERS_DEFS
|
||||
# define PERSONALITY2_INCLUDE_PRINTERS_DEFS "native_printer_defs.h"
|
||||
#endif
|
||||
|
||||
#ifndef PERSONALITY1_INCLUDE_FUNCS
|
||||
# define PERSONALITY1_INCLUDE_FUNCS "empty.h"
|
||||
#endif
|
||||
#ifndef PERSONALITY2_INCLUDE_FUNCS
|
||||
|
||||
#if SUPPORTED_PERSONALITIES > 2 && defined HAVE_MX32_MPERS
|
||||
# define PERSONALITY2_INCLUDE_FUNCS "mx32_funcs.h"
|
||||
# define PERSONALITY2_INCLUDE_PRINTERS_DECLS "mx32_printer_decls.h"
|
||||
# define PERSONALITY2_INCLUDE_PRINTERS_DEFS "mx32_printer_defs.h"
|
||||
# define MPERS_mx32_IOCTL_MACROS "ioctl_redefs2.h"
|
||||
#else
|
||||
# define PERSONALITY2_INCLUDE_PRINTERS_DECLS "native_printer_decls.h"
|
||||
# define PERSONALITY2_INCLUDE_PRINTERS_DEFS "native_printer_defs.h"
|
||||
# define PERSONALITY2_INCLUDE_FUNCS "empty.h"
|
||||
#endif
|
||||
|
||||
@ -299,7 +216,7 @@ struct tcb {
|
||||
int flags; /* See below for TCB_ values */
|
||||
int pid; /* If 0, this tcb is free */
|
||||
int qual_flg; /* qual_flags[scno] or DEFAULT_QUAL_FLAGS + RAW */
|
||||
int u_error; /* Error code */
|
||||
unsigned long u_error; /* Error code */
|
||||
long scno; /* System call number */
|
||||
long u_arg[MAX_ARGS]; /* System call arguments */
|
||||
#if HAVE_STRUCT_TCB_EXT_ARG
|
||||
@ -432,6 +349,7 @@ extern const struct xlat whence_codes[];
|
||||
|| defined(BFIN) \
|
||||
|| defined(M68K) \
|
||||
|| defined(MICROBLAZE) \
|
||||
|| defined(RISCV) \
|
||||
|| defined(S390) \
|
||||
|| defined(SH) || defined(SH64) \
|
||||
|| defined(SPARC) || defined(SPARC64) \
|
||||
@ -528,6 +446,7 @@ extern void clear_regs(void);
|
||||
extern void get_regs(pid_t pid);
|
||||
extern int get_scno(struct tcb *tcp);
|
||||
extern const char *syscall_name(long scno);
|
||||
extern const char *err_name(unsigned long err);
|
||||
|
||||
extern bool is_erestart(struct tcb *);
|
||||
extern void temporarily_clear_syserror(struct tcb *);
|
||||
@ -594,8 +513,9 @@ extern unsigned long get_pagesize(void);
|
||||
extern int string_to_uint(const char *str);
|
||||
extern int next_set_bit(const void *bit_array, unsigned cur_bit, unsigned size_bits);
|
||||
|
||||
#define QUOTE_0_TERMINATED 0x01
|
||||
#define QUOTE_OMIT_LEADING_TRAILING_QUOTES 0x02
|
||||
#define QUOTE_0_TERMINATED 0x01
|
||||
#define QUOTE_OMIT_LEADING_TRAILING_QUOTES 0x02
|
||||
#define QUOTE_OMIT_TRAILING_0 0x08
|
||||
|
||||
extern int string_quote(const char *, char *, unsigned int, unsigned int);
|
||||
extern int print_quoted_string(const char *, unsigned int, unsigned int);
|
||||
@ -617,6 +537,8 @@ extern int printllval(struct tcb *, const char *, int)
|
||||
extern void printaddr(long);
|
||||
extern void printxvals(const uint64_t, const char *, const struct xlat *, ...)
|
||||
ATTRIBUTE_SENTINEL;
|
||||
extern long long getarg_ll(struct tcb *tcp, int argn);
|
||||
extern unsigned long long getarg_ull(struct tcb *tcp, int argn);
|
||||
extern int printargs(struct tcb *);
|
||||
extern int printargs_u(struct tcb *);
|
||||
extern int printargs_d(struct tcb *);
|
||||
@ -624,15 +546,18 @@ extern int printargs_d(struct tcb *);
|
||||
extern void addflags(const struct xlat *, uint64_t);
|
||||
extern int printflags64(const struct xlat *, uint64_t, const char *);
|
||||
extern const char *sprintflags(const char *, const struct xlat *, uint64_t);
|
||||
extern const char *sprintmode(unsigned int);
|
||||
extern const char *sprinttime(time_t);
|
||||
extern void print_symbolic_mode_t(unsigned int);
|
||||
extern void print_numeric_umode_t(unsigned short);
|
||||
extern void print_numeric_long_umask(unsigned long);
|
||||
extern void dumpiov_in_msghdr(struct tcb *, long, unsigned long);
|
||||
extern void dumpiov_in_mmsghdr(struct tcb *, long);
|
||||
extern void dumpiov_upto(struct tcb *, int, long, unsigned long);
|
||||
#define dumpiov(tcp, len, addr) \
|
||||
dumpiov_upto((tcp), (len), (addr), (unsigned long) -1L)
|
||||
extern void dumpstr(struct tcb *, long, int);
|
||||
extern void printstr(struct tcb *, long, long);
|
||||
extern void printstr_ex(struct tcb *, long addr, long len,
|
||||
unsigned int user_style);
|
||||
extern bool printnum_short(struct tcb *, long, const char *)
|
||||
ATTRIBUTE_FORMAT((printf, 3, 0));
|
||||
extern bool printnum_int(struct tcb *, long, const char *)
|
||||
@ -702,6 +627,9 @@ extern const char *sprint_open_modes(unsigned int);
|
||||
extern void print_seccomp_filter(struct tcb *, unsigned long);
|
||||
extern void print_seccomp_fprog(struct tcb *, unsigned long, unsigned short);
|
||||
|
||||
struct strace_stat;
|
||||
extern void print_struct_stat(struct tcb *tcp, const struct strace_stat *const st);
|
||||
|
||||
struct strace_statfs;
|
||||
extern void print_struct_statfs(struct tcb *tcp, long);
|
||||
extern void print_struct_statfs64(struct tcb *tcp, long, unsigned long);
|
||||
@ -735,6 +663,12 @@ extern void unwind_print_stacktrace(struct tcb* tcp);
|
||||
extern void unwind_capture_stacktrace(struct tcb* tcp);
|
||||
#endif
|
||||
|
||||
static inline void
|
||||
printstr(struct tcb *tcp, long addr, long len)
|
||||
{
|
||||
printstr_ex(tcp, addr, len, 0);
|
||||
}
|
||||
|
||||
static inline int
|
||||
printflags(const struct xlat *x, unsigned int flags, const char *dflt)
|
||||
{
|
||||
@ -818,13 +752,25 @@ extern unsigned current_wordsize;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Widen without sign-extension a signed integer type to unsigned long long.
|
||||
* Zero-extend a signed integer type to unsigned long long.
|
||||
*/
|
||||
#define widen_to_ull(v) \
|
||||
(sizeof(v) == sizeof(int) ? (unsigned long long) (unsigned int) (v) : \
|
||||
#define zero_extend_signed_to_ull(v) \
|
||||
(sizeof(v) == sizeof(char) ? (unsigned long long) (unsigned char) (v) : \
|
||||
sizeof(v) == sizeof(short) ? (unsigned long long) (unsigned short) (v) : \
|
||||
sizeof(v) == sizeof(int) ? (unsigned long long) (unsigned int) (v) : \
|
||||
sizeof(v) == sizeof(long) ? (unsigned long long) (unsigned long) (v) : \
|
||||
(unsigned long long) (v))
|
||||
|
||||
/*
|
||||
* Sign-extend an unsigned integer type to long long.
|
||||
*/
|
||||
#define sign_extend_unsigned_to_ll(v) \
|
||||
(sizeof(v) == sizeof(char) ? (long long) (char) (v) : \
|
||||
sizeof(v) == sizeof(short) ? (long long) (short) (v) : \
|
||||
sizeof(v) == sizeof(int) ? (long long) (int) (v) : \
|
||||
sizeof(v) == sizeof(long) ? (long long) (long) (v) : \
|
||||
(long long) (v))
|
||||
|
||||
extern const struct_sysent sysent0[];
|
||||
extern const char *const errnoent0[];
|
||||
extern const char *const signalent0[];
|
||||
@ -863,10 +809,13 @@ extern unsigned num_quals;
|
||||
#endif /* !IN_MPERS_BOOTSTRAP */
|
||||
|
||||
/*
|
||||
* If you need non-NULL sysent[scno].sys_func and sysent[scno].sys_name
|
||||
* If you need non-NULL sysent[scno].sys_func, non-NULL sysent[scno].sys_name,
|
||||
* and non-indirect sysent[scno].sys_flags.
|
||||
*/
|
||||
#define SCNO_IS_VALID(scno) \
|
||||
((unsigned long)(scno) < nsyscalls && sysent[scno].sys_func)
|
||||
((unsigned long)(scno) < nsyscalls \
|
||||
&& sysent[scno].sys_func \
|
||||
&& !(sysent[scno].sys_flags & TRACE_INDIRECT_SUBCALL))
|
||||
|
||||
/* Only ensures that sysent[scno] isn't out of range */
|
||||
#define SCNO_IN_RANGE(scno) \
|
||||
@ -899,3 +848,5 @@ extern unsigned num_quals;
|
||||
#define PRI__d64 PRI__64"d"
|
||||
#define PRI__u64 PRI__64"u"
|
||||
#define PRI__x64 PRI__64"x"
|
||||
|
||||
#endif /* !STRACE_DEFS_H */
|
||||
|
9
dirent.c
9
dirent.c
@ -48,8 +48,8 @@ print_old_dirent(struct tcb *tcp, long addr)
|
||||
return;
|
||||
|
||||
tprintf("{d_ino=%llu, d_off=%llu, d_reclen=%u, d_name=",
|
||||
widen_to_ull(d.d_ino),
|
||||
widen_to_ull(d.d_off), d.d_reclen);
|
||||
zero_extend_signed_to_ull(d.d_ino),
|
||||
zero_extend_signed_to_ull(d.d_off), d.d_reclen);
|
||||
if (d.d_reclen > D_NAME_LEN_MAX)
|
||||
d.d_reclen = D_NAME_LEN_MAX;
|
||||
printpathn(tcp, addr + offsetof(kernel_dirent, d_name), d.d_reclen);
|
||||
@ -127,8 +127,9 @@ SYS_FUNC(getdents)
|
||||
|
||||
tprintf("%s{d_ino=%llu, d_off=%llu, d_reclen=%u"
|
||||
", d_name=", i ? ", " : "",
|
||||
widen_to_ull(d->d_ino),
|
||||
widen_to_ull(d->d_off), d->d_reclen);
|
||||
zero_extend_signed_to_ull(d->d_ino),
|
||||
zero_extend_signed_to_ull(d->d_off),
|
||||
d->d_reclen);
|
||||
|
||||
if (print_quoted_string(d->d_name, d_name_len,
|
||||
QUOTE_0_TERMINATED) > 0) {
|
||||
|
2
evdev.c
2
evdev.c
@ -37,7 +37,7 @@
|
||||
|
||||
typedef struct ff_effect struct_ff_effect;
|
||||
|
||||
#endif /* HAVE_LINUX_BTRFS_H */
|
||||
#endif /* HAVE_LINUX_INPUT_H */
|
||||
|
||||
#include MPERS_DEFS
|
||||
|
||||
|
@ -42,7 +42,7 @@ SYS_FUNC(fadvise64)
|
||||
|
||||
printfd(tcp, tcp->u_arg[0]);
|
||||
argn = printllval(tcp, ", %lld", 1);
|
||||
tprintf(", %ld, ", tcp->u_arg[argn++]);
|
||||
tprintf(", %llu, ", getarg_ull(tcp, argn++));
|
||||
printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???");
|
||||
|
||||
return RVAL_DECODED;
|
||||
|
@ -19,10 +19,10 @@ SYS_FUNC(fallocate)
|
||||
tprints(", ");
|
||||
|
||||
/* offset */
|
||||
argn = printllval(tcp, "%llu, ", 2);
|
||||
argn = printllval(tcp, "%lld, ", 2);
|
||||
|
||||
/* len */
|
||||
printllval(tcp, "%llu", argn);
|
||||
printllval(tcp, "%lld", argn);
|
||||
|
||||
return RVAL_DECODED;
|
||||
}
|
||||
|
102
fetch_struct_stat.c
Normal file
102
fetch_struct_stat.c
Normal file
@ -0,0 +1,102 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2016 Dmitry V. Levin <ldv@altlinux.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "defs.h"
|
||||
|
||||
#include DEF_MPERS_TYPE(struct_stat)
|
||||
|
||||
#include "asm_stat.h"
|
||||
|
||||
#if defined MPERS_IS_m32
|
||||
# undef HAVE_STRUCT_STAT
|
||||
# undef HAVE_STRUCT_STAT_ST_MTIME_NSEC
|
||||
# ifdef HAVE_M32_STRUCT_STAT
|
||||
# define HAVE_STRUCT_STAT 1
|
||||
# ifdef HAVE_M32_STRUCT_STAT_ST_MTIME_NSEC
|
||||
# define HAVE_STRUCT_STAT_ST_MTIME_NSEC 1
|
||||
# endif /* HAVE_M32_STRUCT_STAT_ST_MTIME_NSEC */
|
||||
# endif /* HAVE_M32_STRUCT_STAT */
|
||||
#elif defined MPERS_IS_mx32
|
||||
# undef HAVE_STRUCT_STAT
|
||||
# undef HAVE_STRUCT_STAT_ST_MTIME_NSEC
|
||||
# ifdef HAVE_MX32_STRUCT_STAT
|
||||
# define HAVE_STRUCT_STAT 1
|
||||
# ifdef HAVE_MX32_STRUCT_STAT_ST_MTIME_NSEC
|
||||
# define HAVE_STRUCT_STAT_ST_MTIME_NSEC 1
|
||||
# endif /* HAVE_MX32_STRUCT_STAT_ST_MTIME_NSEC */
|
||||
# endif /* HAVE_MX32_STRUCT_STAT */
|
||||
#else /* !MPERS_IS_m32 && !MPERS_IS_mx32 */
|
||||
# define HAVE_STRUCT_STAT 1
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_STRUCT_STAT
|
||||
struct stat {};
|
||||
#endif
|
||||
|
||||
typedef struct stat struct_stat;
|
||||
|
||||
#include MPERS_DEFS
|
||||
|
||||
#include "stat.h"
|
||||
|
||||
#ifdef HAVE_STRUCT_STAT_ST_MTIME_NSEC
|
||||
# define TIME_NSEC(arg) zero_extend_signed_to_ull(arg)
|
||||
#else
|
||||
# define TIME_NSEC(arg) 0
|
||||
#endif
|
||||
|
||||
MPERS_PRINTER_DECL(bool, fetch_struct_stat,
|
||||
struct tcb *tcp, const unsigned long addr,
|
||||
struct strace_stat *const dst)
|
||||
{
|
||||
#ifdef HAVE_STRUCT_STAT
|
||||
struct_stat buf;
|
||||
if (umove_or_printaddr(tcp, addr, &buf))
|
||||
return false;
|
||||
|
||||
dst->dev = zero_extend_signed_to_ull(buf.st_dev);
|
||||
dst->ino = zero_extend_signed_to_ull(buf.st_ino);
|
||||
dst->rdev = zero_extend_signed_to_ull(buf.st_rdev);
|
||||
dst->size = zero_extend_signed_to_ull(buf.st_size);
|
||||
dst->blocks = zero_extend_signed_to_ull(buf.st_blocks);
|
||||
dst->blksize = zero_extend_signed_to_ull(buf.st_blksize);
|
||||
dst->mode = zero_extend_signed_to_ull(buf.st_mode);
|
||||
dst->nlink = zero_extend_signed_to_ull(buf.st_nlink);
|
||||
dst->uid = zero_extend_signed_to_ull(buf.st_uid);
|
||||
dst->gid = zero_extend_signed_to_ull(buf.st_gid);
|
||||
dst->atime = sign_extend_unsigned_to_ll(buf.st_atime);
|
||||
dst->ctime = sign_extend_unsigned_to_ll(buf.st_ctime);
|
||||
dst->mtime = sign_extend_unsigned_to_ll(buf.st_mtime);
|
||||
dst->atime_nsec = TIME_NSEC(buf.st_atime_nsec);
|
||||
dst->ctime_nsec = TIME_NSEC(buf.st_ctime_nsec);
|
||||
dst->mtime_nsec = TIME_NSEC(buf.st_mtime_nsec);
|
||||
return true;
|
||||
#else /* !HAVE_STRUCT_STAT */
|
||||
printaddr(addr);
|
||||
return false;
|
||||
#endif
|
||||
}
|
100
fetch_struct_stat64.c
Normal file
100
fetch_struct_stat64.c
Normal file
@ -0,0 +1,100 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2016 Dmitry V. Levin <ldv@altlinux.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "defs.h"
|
||||
|
||||
#include DEF_MPERS_TYPE(struct_stat64)
|
||||
|
||||
#include "asm_stat.h"
|
||||
|
||||
#if defined MPERS_IS_m32
|
||||
# undef HAVE_STRUCT_STAT64
|
||||
# undef HAVE_STRUCT_STAT64_ST_MTIME_NSEC
|
||||
# ifdef HAVE_M32_STRUCT_STAT64
|
||||
# define HAVE_STRUCT_STAT64 1
|
||||
# ifdef HAVE_M32_STRUCT_STAT64_ST_MTIME_NSEC
|
||||
# define HAVE_STRUCT_STAT64_ST_MTIME_NSEC 1
|
||||
# endif /* HAVE_M32_STRUCT_STAT64_ST_MTIME_NSEC */
|
||||
# endif /* HAVE_M32_STRUCT_STAT64 */
|
||||
#elif defined MPERS_IS_mx32
|
||||
# undef HAVE_STRUCT_STAT64
|
||||
# undef HAVE_STRUCT_STAT64_ST_MTIME_NSEC
|
||||
# ifdef HAVE_MX32_STRUCT_STAT64
|
||||
# define HAVE_STRUCT_STAT64 1
|
||||
# ifdef HAVE_MX32_STRUCT_STAT64_ST_MTIME_NSEC
|
||||
# define HAVE_STRUCT_STAT64_ST_MTIME_NSEC 1
|
||||
# endif /* HAVE_MX32_STRUCT_STAT64_ST_MTIME_NSEC */
|
||||
# endif /* HAVE_MX32_STRUCT_STAT64 */
|
||||
#endif /* MPERS_IS_m32 || MPERS_IS_mx32 */
|
||||
|
||||
#ifndef HAVE_STRUCT_STAT64
|
||||
struct stat64 {};
|
||||
#endif
|
||||
|
||||
typedef struct stat64 struct_stat64;
|
||||
|
||||
#include MPERS_DEFS
|
||||
|
||||
#include "stat.h"
|
||||
|
||||
#ifdef HAVE_STRUCT_STAT64_ST_MTIME_NSEC
|
||||
# define TIME_NSEC(arg) zero_extend_signed_to_ull(arg)
|
||||
#else
|
||||
# define TIME_NSEC(arg) 0
|
||||
#endif
|
||||
|
||||
MPERS_PRINTER_DECL(bool, fetch_struct_stat64,
|
||||
struct tcb *tcp, const unsigned long addr,
|
||||
struct strace_stat *const dst)
|
||||
{
|
||||
#ifdef HAVE_STRUCT_STAT64
|
||||
struct_stat64 buf;
|
||||
if (umove_or_printaddr(tcp, addr, &buf))
|
||||
return false;
|
||||
|
||||
dst->dev = zero_extend_signed_to_ull(buf.st_dev);
|
||||
dst->ino = zero_extend_signed_to_ull(buf.st_ino);
|
||||
dst->rdev = zero_extend_signed_to_ull(buf.st_rdev);
|
||||
dst->size = zero_extend_signed_to_ull(buf.st_size);
|
||||
dst->blocks = zero_extend_signed_to_ull(buf.st_blocks);
|
||||
dst->blksize = zero_extend_signed_to_ull(buf.st_blksize);
|
||||
dst->mode = zero_extend_signed_to_ull(buf.st_mode);
|
||||
dst->nlink = zero_extend_signed_to_ull(buf.st_nlink);
|
||||
dst->uid = zero_extend_signed_to_ull(buf.st_uid);
|
||||
dst->gid = zero_extend_signed_to_ull(buf.st_gid);
|
||||
dst->atime = sign_extend_unsigned_to_ll(buf.st_atime);
|
||||
dst->ctime = sign_extend_unsigned_to_ll(buf.st_ctime);
|
||||
dst->mtime = sign_extend_unsigned_to_ll(buf.st_mtime);
|
||||
dst->atime_nsec = TIME_NSEC(buf.st_atime_nsec);
|
||||
dst->ctime_nsec = TIME_NSEC(buf.st_ctime_nsec);
|
||||
dst->mtime_nsec = TIME_NSEC(buf.st_mtime_nsec);
|
||||
return true;
|
||||
#else /* !HAVE_STRUCT_STAT64 */
|
||||
printaddr(addr);
|
||||
return false;
|
||||
#endif
|
||||
}
|
@ -47,26 +47,26 @@ MPERS_PRINTER_DECL(bool, fetch_struct_statfs,
|
||||
if (umove_or_printaddr(tcp, addr, &b))
|
||||
return false;
|
||||
|
||||
p->f_type = widen_to_ull(b.f_type);
|
||||
p->f_bsize = widen_to_ull(b.f_bsize);
|
||||
p->f_blocks = widen_to_ull(b.f_blocks);
|
||||
p->f_bfree = widen_to_ull(b.f_bfree);
|
||||
p->f_bavail = widen_to_ull(b.f_bavail);
|
||||
p->f_files = widen_to_ull(b.f_files);
|
||||
p->f_ffree = widen_to_ull(b.f_ffree);
|
||||
p->f_type = zero_extend_signed_to_ull(b.f_type);
|
||||
p->f_bsize = zero_extend_signed_to_ull(b.f_bsize);
|
||||
p->f_blocks = zero_extend_signed_to_ull(b.f_blocks);
|
||||
p->f_bfree = zero_extend_signed_to_ull(b.f_bfree);
|
||||
p->f_bavail = zero_extend_signed_to_ull(b.f_bavail);
|
||||
p->f_files = zero_extend_signed_to_ull(b.f_files);
|
||||
p->f_ffree = zero_extend_signed_to_ull(b.f_ffree);
|
||||
#if defined HAVE_STRUCT_STATFS_F_FSID_VAL
|
||||
p->f_fsid[0] = widen_to_ull(b.f_fsid.val[0]);
|
||||
p->f_fsid[1] = widen_to_ull(b.f_fsid.val[1]);
|
||||
p->f_fsid[0] = zero_extend_signed_to_ull(b.f_fsid.val[0]);
|
||||
p->f_fsid[1] = zero_extend_signed_to_ull(b.f_fsid.val[1]);
|
||||
#elif defined HAVE_STRUCT_STATFS_F_FSID___VAL
|
||||
p->f_fsid[0] = widen_to_ull(b.f_fsid.__val[0]);
|
||||
p->f_fsid[1] = widen_to_ull(b.f_fsid.__val[1]);
|
||||
p->f_fsid[0] = zero_extend_signed_to_ull(b.f_fsid.__val[0]);
|
||||
p->f_fsid[1] = zero_extend_signed_to_ull(b.f_fsid.__val[1]);
|
||||
#endif
|
||||
p->f_namelen = widen_to_ull(b.f_namelen);
|
||||
p->f_namelen = zero_extend_signed_to_ull(b.f_namelen);
|
||||
#ifdef HAVE_STRUCT_STATFS_F_FRSIZE
|
||||
p->f_frsize = widen_to_ull(b.f_frsize);
|
||||
p->f_frsize = zero_extend_signed_to_ull(b.f_frsize);
|
||||
#endif
|
||||
#ifdef HAVE_STRUCT_STATFS_F_FLAGS
|
||||
p->f_flags = widen_to_ull(b.f_flags);
|
||||
p->f_flags = zero_extend_signed_to_ull(b.f_flags);
|
||||
#endif
|
||||
|
||||
return true;
|
||||
@ -95,26 +95,26 @@ MPERS_PRINTER_DECL(bool, fetch_struct_statfs64,
|
||||
if (umove_or_printaddr(tcp, addr, &b))
|
||||
return false;
|
||||
|
||||
p->f_type = widen_to_ull(b.f_type);
|
||||
p->f_bsize = widen_to_ull(b.f_bsize);
|
||||
p->f_blocks = widen_to_ull(b.f_blocks);
|
||||
p->f_bfree = widen_to_ull(b.f_bfree);
|
||||
p->f_bavail = widen_to_ull(b.f_bavail);
|
||||
p->f_files = widen_to_ull(b.f_files);
|
||||
p->f_ffree = widen_to_ull(b.f_ffree);
|
||||
p->f_type = zero_extend_signed_to_ull(b.f_type);
|
||||
p->f_bsize = zero_extend_signed_to_ull(b.f_bsize);
|
||||
p->f_blocks = zero_extend_signed_to_ull(b.f_blocks);
|
||||
p->f_bfree = zero_extend_signed_to_ull(b.f_bfree);
|
||||
p->f_bavail = zero_extend_signed_to_ull(b.f_bavail);
|
||||
p->f_files = zero_extend_signed_to_ull(b.f_files);
|
||||
p->f_ffree = zero_extend_signed_to_ull(b.f_ffree);
|
||||
#if defined HAVE_STRUCT_STATFS64_F_FSID_VAL
|
||||
p->f_fsid[0] = widen_to_ull(b.f_fsid.val[0]);
|
||||
p->f_fsid[1] = widen_to_ull(b.f_fsid.val[1]);
|
||||
p->f_fsid[0] = zero_extend_signed_to_ull(b.f_fsid.val[0]);
|
||||
p->f_fsid[1] = zero_extend_signed_to_ull(b.f_fsid.val[1]);
|
||||
#elif defined HAVE_STRUCT_STATFS64_F_FSID___VAL
|
||||
p->f_fsid[0] = widen_to_ull(b.f_fsid.__val[0]);
|
||||
p->f_fsid[1] = widen_to_ull(b.f_fsid.__val[1]);
|
||||
p->f_fsid[0] = zero_extend_signed_to_ull(b.f_fsid.__val[0]);
|
||||
p->f_fsid[1] = zero_extend_signed_to_ull(b.f_fsid.__val[1]);
|
||||
#endif
|
||||
p->f_namelen = widen_to_ull(b.f_namelen);
|
||||
p->f_namelen = zero_extend_signed_to_ull(b.f_namelen);
|
||||
#ifdef HAVE_STRUCT_STATFS64_F_FRSIZE
|
||||
p->f_frsize = widen_to_ull(b.f_frsize);
|
||||
p->f_frsize = zero_extend_signed_to_ull(b.f_frsize);
|
||||
#endif
|
||||
#ifdef HAVE_STRUCT_STATFS64_F_FLAGS
|
||||
p->f_flags = widen_to_ull(b.f_flags);
|
||||
p->f_flags = zero_extend_signed_to_ull(b.f_flags);
|
||||
#endif
|
||||
|
||||
return true;
|
||||
|
493
file.c
493
file.c
@ -1,493 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
|
||||
* Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
|
||||
* Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
|
||||
* Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "defs.h"
|
||||
|
||||
#undef dev_t
|
||||
#undef ino_t
|
||||
#undef mode_t
|
||||
#undef nlink_t
|
||||
#undef uid_t
|
||||
#undef gid_t
|
||||
#undef off_t
|
||||
#undef loff_t
|
||||
#define dev_t __kernel_dev_t
|
||||
#define ino_t __kernel_ino_t
|
||||
#define mode_t __kernel_mode_t
|
||||
#define nlink_t __kernel_nlink_t
|
||||
#define uid_t __kernel_uid_t
|
||||
#define gid_t __kernel_gid_t
|
||||
#define off_t __kernel_off_t
|
||||
#define loff_t __kernel_loff_t
|
||||
|
||||
#include "asm_stat.h"
|
||||
|
||||
#undef dev_t
|
||||
#undef ino_t
|
||||
#undef mode_t
|
||||
#undef nlink_t
|
||||
#undef uid_t
|
||||
#undef gid_t
|
||||
#undef off_t
|
||||
#undef loff_t
|
||||
#define dev_t dev_t
|
||||
#define ino_t ino_t
|
||||
#define mode_t mode_t
|
||||
#define nlink_t nlink_t
|
||||
#define uid_t uid_t
|
||||
#define gid_t gid_t
|
||||
#define off_t off_t
|
||||
#define loff_t loff_t
|
||||
|
||||
/* for S_IFMT */
|
||||
#define stat libc_stat
|
||||
#define stat64 libc_stat64
|
||||
#include <sys/stat.h>
|
||||
#undef stat
|
||||
#undef stat64
|
||||
/* These might be macros. */
|
||||
#undef st_atime
|
||||
#undef st_mtime
|
||||
#undef st_ctime
|
||||
|
||||
#if defined MAJOR_IN_SYSMACROS
|
||||
# include <sys/sysmacros.h>
|
||||
#elif defined MAJOR_IN_MKDEV
|
||||
# include <sys/mkdev.h>
|
||||
#endif
|
||||
|
||||
/* several stats */
|
||||
|
||||
#include "printstat.h"
|
||||
|
||||
/* all locally defined structures provide these fields */
|
||||
#undef HAVE_STRUCT_STAT_ST_ATIME_NSEC
|
||||
#define HAVE_STRUCT_STAT_ST_ATIME_NSEC 1
|
||||
#undef HAVE_STRUCT_STAT_ST_CTIME_NSEC
|
||||
#define HAVE_STRUCT_STAT_ST_CTIME_NSEC 1
|
||||
#undef HAVE_STRUCT_STAT_ST_MTIME_NSEC
|
||||
#define HAVE_STRUCT_STAT_ST_MTIME_NSEC 1
|
||||
|
||||
#undef STAT32_PERSONALITY
|
||||
#if SUPPORTED_PERSONALITIES > 1
|
||||
# if defined AARCH64 || defined X86_64 || defined X32
|
||||
struct stat32 {
|
||||
unsigned int st_dev;
|
||||
unsigned int st_ino;
|
||||
unsigned short st_mode;
|
||||
unsigned short st_nlink;
|
||||
unsigned short st_uid;
|
||||
unsigned short st_gid;
|
||||
unsigned int st_rdev;
|
||||
unsigned int st_size;
|
||||
unsigned int st_blksize;
|
||||
unsigned int st_blocks;
|
||||
unsigned int st_atime;
|
||||
unsigned int st_atime_nsec;
|
||||
unsigned int st_mtime;
|
||||
unsigned int st_mtime_nsec;
|
||||
unsigned int st_ctime;
|
||||
unsigned int st_ctime_nsec;
|
||||
unsigned int __unused4;
|
||||
unsigned int __unused5;
|
||||
};
|
||||
# define STAT32_PERSONALITY 1
|
||||
# elif defined POWERPC64
|
||||
struct stat32 {
|
||||
unsigned int st_dev;
|
||||
unsigned int st_ino;
|
||||
unsigned int st_mode;
|
||||
unsigned short st_nlink;
|
||||
unsigned int st_uid;
|
||||
unsigned int st_gid;
|
||||
unsigned int st_rdev;
|
||||
unsigned int st_size;
|
||||
unsigned int st_blksize;
|
||||
unsigned int st_blocks;
|
||||
unsigned int st_atime;
|
||||
unsigned int st_atime_nsec;
|
||||
unsigned int st_mtime;
|
||||
unsigned int st_mtime_nsec;
|
||||
unsigned int st_ctime;
|
||||
unsigned int st_ctime_nsec;
|
||||
unsigned int __unused4;
|
||||
unsigned int __unused5;
|
||||
};
|
||||
# define STAT32_PERSONALITY 1
|
||||
# elif defined SPARC64
|
||||
struct stat32 {
|
||||
unsigned short st_dev;
|
||||
unsigned int st_ino;
|
||||
unsigned short st_mode;
|
||||
unsigned short st_nlink;
|
||||
unsigned short st_uid;
|
||||
unsigned short st_gid;
|
||||
unsigned short st_rdev;
|
||||
unsigned int st_size;
|
||||
unsigned int st_atime;
|
||||
unsigned int st_atime_nsec;
|
||||
unsigned int st_mtime;
|
||||
unsigned int st_mtime_nsec;
|
||||
unsigned int st_ctime;
|
||||
unsigned int st_ctime_nsec;
|
||||
unsigned int st_blksize;
|
||||
unsigned int st_blocks;
|
||||
unsigned int __unused4[2];
|
||||
};
|
||||
# define STAT32_PERSONALITY 0
|
||||
# elif defined SPARC
|
||||
# /* no 64-bit personalities */
|
||||
# elif defined TILE
|
||||
# /* no 32-bit stat */
|
||||
# else
|
||||
# warning FIXME: check whether struct stat32 definition is needed for this architecture!
|
||||
# endif /* X86_64 || X32 || POWERPC64 */
|
||||
#endif /* SUPPORTED_PERSONALITIES > 1 */
|
||||
|
||||
#ifdef STAT32_PERSONALITY
|
||||
# define DO_PRINTSTAT do_printstat32
|
||||
# define STRUCT_STAT struct stat32
|
||||
# undef HAVE_STRUCT_STAT_ST_FLAGS
|
||||
# undef HAVE_STRUCT_STAT_ST_FSTYPE
|
||||
# undef HAVE_STRUCT_STAT_ST_GEN
|
||||
# include "printstat.h"
|
||||
#endif /* STAT32_PERSONALITY */
|
||||
|
||||
#if defined(SPARC) || defined(SPARC64)
|
||||
|
||||
struct solstat {
|
||||
unsigned st_dev;
|
||||
unsigned int st_pad1[3]; /* network id */
|
||||
unsigned st_ino;
|
||||
unsigned st_mode;
|
||||
unsigned st_nlink;
|
||||
unsigned st_uid;
|
||||
unsigned st_gid;
|
||||
unsigned st_rdev;
|
||||
unsigned int st_pad2[2];
|
||||
unsigned int st_size;
|
||||
unsigned int st_pad3; /* st_size, off_t expansion */
|
||||
unsigned int st_atime;
|
||||
unsigned int st_atime_nsec;
|
||||
unsigned int st_mtime;
|
||||
unsigned int st_mtime_nsec;
|
||||
unsigned int st_ctime;
|
||||
unsigned int st_ctime_nsec;
|
||||
unsigned int st_blksize;
|
||||
unsigned int st_blocks;
|
||||
char st_fstype[16];
|
||||
unsigned int st_pad4[8]; /* expansion area */
|
||||
};
|
||||
|
||||
# define DO_PRINTSTAT do_printstat_sol
|
||||
# define STRUCT_STAT struct solstat
|
||||
# define STAT_MAJOR(x) (((x) >> 18) & 0x3fff)
|
||||
# define STAT_MINOR(x) ((x) & 0x3ffff)
|
||||
# undef HAVE_STRUCT_STAT_ST_FLAGS
|
||||
# undef HAVE_STRUCT_STAT_ST_FSTYPE
|
||||
# undef HAVE_STRUCT_STAT_ST_GEN
|
||||
# include "printstat.h"
|
||||
#endif /* SPARC || SPARC64 */
|
||||
|
||||
static void
|
||||
printstat(struct tcb *tcp, long addr)
|
||||
{
|
||||
struct stat statbuf;
|
||||
|
||||
#ifdef STAT32_PERSONALITY
|
||||
if (current_personality == STAT32_PERSONALITY) {
|
||||
struct stat32 statbuf;
|
||||
|
||||
if (!umove_or_printaddr(tcp, addr, &statbuf))
|
||||
do_printstat32(tcp, &statbuf);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(SPARC) || defined(SPARC64)
|
||||
if (current_personality == 1) {
|
||||
struct solstat statbuf;
|
||||
|
||||
if (!umove_or_printaddr(tcp, addr, &statbuf))
|
||||
do_printstat_sol(tcp, &statbuf);
|
||||
return;
|
||||
}
|
||||
#endif /* SPARC || SPARC64 */
|
||||
|
||||
if (!umove_or_printaddr(tcp, addr, &statbuf))
|
||||
do_printstat(tcp, &statbuf);
|
||||
}
|
||||
|
||||
SYS_FUNC(stat)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
printpath(tcp, tcp->u_arg[0]);
|
||||
tprints(", ");
|
||||
} else {
|
||||
printstat(tcp, tcp->u_arg[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
SYS_FUNC(fstat)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
printfd(tcp, tcp->u_arg[0]);
|
||||
tprints(", ");
|
||||
} else {
|
||||
printstat(tcp, tcp->u_arg[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if defined STAT32_PERSONALITY && !defined HAVE_STRUCT_STAT64
|
||||
# if defined AARCH64 || defined X86_64 || defined X32
|
||||
/*
|
||||
* Linux x86_64 and x32 have unified `struct stat' but their i386 personality
|
||||
* needs `struct stat64'.
|
||||
* linux/arch/x86/include/uapi/asm/stat.h defines `struct stat64' only for i386.
|
||||
*
|
||||
* Similarly, aarch64 has a unified `struct stat' but its arm personality
|
||||
* needs `struct stat64' (unlike x86, it shouldn't be packed).
|
||||
*/
|
||||
struct stat64 {
|
||||
unsigned long long st_dev;
|
||||
unsigned char __pad0[4];
|
||||
unsigned int __st_ino;
|
||||
unsigned int st_mode;
|
||||
unsigned int st_nlink;
|
||||
unsigned int st_uid;
|
||||
unsigned int st_gid;
|
||||
unsigned long long st_rdev;
|
||||
unsigned char __pad3[4];
|
||||
long long st_size;
|
||||
unsigned int st_blksize;
|
||||
unsigned long long st_blocks;
|
||||
unsigned int st_atime;
|
||||
unsigned int st_atime_nsec;
|
||||
unsigned int st_mtime;
|
||||
unsigned int st_mtime_nsec;
|
||||
unsigned int st_ctime;
|
||||
unsigned int st_ctime_nsec;
|
||||
unsigned long long st_ino;
|
||||
}
|
||||
# if defined X86_64 || defined X32
|
||||
ATTRIBUTE_PACKED
|
||||
# define STAT64_SIZE 96
|
||||
# else
|
||||
# define STAT64_SIZE 104
|
||||
# endif
|
||||
;
|
||||
# define HAVE_STRUCT_STAT64 1
|
||||
# else /* !(AARCH64 || X86_64 || X32) */
|
||||
# warning FIXME: check whether struct stat64 definition is needed for this architecture!
|
||||
# endif
|
||||
#endif /* STAT32_PERSONALITY && !HAVE_STRUCT_STAT64 */
|
||||
|
||||
#ifdef HAVE_STRUCT_STAT64
|
||||
|
||||
# define DO_PRINTSTAT do_printstat64
|
||||
# define STRUCT_STAT struct stat64
|
||||
# undef HAVE_STRUCT_STAT_ST_FLAGS
|
||||
# undef HAVE_STRUCT_STAT_ST_FSTYPE
|
||||
# undef HAVE_STRUCT_STAT_ST_GEN
|
||||
# include "printstat.h"
|
||||
|
||||
static void
|
||||
printstat64(struct tcb *tcp, long addr)
|
||||
{
|
||||
struct stat64 statbuf;
|
||||
|
||||
# ifdef STAT64_SIZE
|
||||
(void) sizeof(char[sizeof statbuf == STAT64_SIZE ? 1 : -1]);
|
||||
# endif
|
||||
|
||||
# ifdef STAT32_PERSONALITY
|
||||
if (current_personality != STAT32_PERSONALITY) {
|
||||
printstat(tcp, addr);
|
||||
return;
|
||||
}
|
||||
# endif /* STAT32_PERSONALITY */
|
||||
|
||||
if (!umove_or_printaddr(tcp, addr, &statbuf))
|
||||
do_printstat64(tcp, &statbuf);
|
||||
}
|
||||
|
||||
SYS_FUNC(stat64)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
printpath(tcp, tcp->u_arg[0]);
|
||||
tprints(", ");
|
||||
} else {
|
||||
printstat64(tcp, tcp->u_arg[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
SYS_FUNC(fstat64)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
printfd(tcp, tcp->u_arg[0]);
|
||||
tprints(", ");
|
||||
} else {
|
||||
printstat64(tcp, tcp->u_arg[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
SYS_FUNC(stat64)
|
||||
{
|
||||
return sys_stat(tcp);
|
||||
}
|
||||
|
||||
SYS_FUNC(fstat64)
|
||||
{
|
||||
return sys_fstat(tcp);
|
||||
}
|
||||
|
||||
#endif /* HAVE_STRUCT_STAT64 */
|
||||
|
||||
SYS_FUNC(newfstatat)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
print_dirfd(tcp, tcp->u_arg[0]);
|
||||
printpath(tcp, tcp->u_arg[1]);
|
||||
tprints(", ");
|
||||
} else {
|
||||
#if defined STAT32_PERSONALITY
|
||||
if (current_personality == STAT32_PERSONALITY)
|
||||
printstat64(tcp, tcp->u_arg[2]);
|
||||
else
|
||||
printstat(tcp, tcp->u_arg[2]);
|
||||
#elif defined HAVE_STRUCT_STAT64
|
||||
printstat64(tcp, tcp->u_arg[2]);
|
||||
#else
|
||||
printstat(tcp, tcp->u_arg[2]);
|
||||
#endif /* STAT32_PERSONALITY || HAVE_STRUCT_STAT64 */
|
||||
tprints(", ");
|
||||
printflags(at_flags, tcp->u_arg[3], "AT_???");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if defined(HAVE_STRUCT___OLD_KERNEL_STAT)
|
||||
|
||||
static void
|
||||
convertoldstat(const struct __old_kernel_stat *oldbuf, struct stat *newbuf)
|
||||
{
|
||||
memset(newbuf, 0, sizeof(*newbuf));
|
||||
newbuf->st_dev = oldbuf->st_dev;
|
||||
newbuf->st_ino = oldbuf->st_ino;
|
||||
newbuf->st_mode = oldbuf->st_mode;
|
||||
newbuf->st_nlink = oldbuf->st_nlink;
|
||||
newbuf->st_uid = oldbuf->st_uid;
|
||||
newbuf->st_gid = oldbuf->st_gid;
|
||||
newbuf->st_rdev = oldbuf->st_rdev;
|
||||
newbuf->st_size = oldbuf->st_size;
|
||||
newbuf->st_atime = oldbuf->st_atime;
|
||||
newbuf->st_mtime = oldbuf->st_mtime;
|
||||
newbuf->st_ctime = oldbuf->st_ctime;
|
||||
}
|
||||
|
||||
static void
|
||||
printoldstat(struct tcb *tcp, long addr)
|
||||
{
|
||||
struct __old_kernel_stat statbuf;
|
||||
struct stat newstatbuf;
|
||||
|
||||
# if defined(SPARC) || defined(SPARC64)
|
||||
if (current_personality == 1) {
|
||||
struct solstat statbuf;
|
||||
|
||||
if (!umove_or_printaddr(tcp, addr, &statbuf))
|
||||
do_printstat_sol(tcp, &statbuf);
|
||||
return;
|
||||
}
|
||||
# endif
|
||||
|
||||
if (!umove_or_printaddr(tcp, addr, &statbuf)) {
|
||||
convertoldstat(&statbuf, &newstatbuf);
|
||||
do_printstat(tcp, &newstatbuf);
|
||||
}
|
||||
}
|
||||
|
||||
SYS_FUNC(oldstat)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
printpath(tcp, tcp->u_arg[0]);
|
||||
tprints(", ");
|
||||
} else {
|
||||
printoldstat(tcp, tcp->u_arg[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
SYS_FUNC(oldfstat)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
printfd(tcp, tcp->u_arg[0]);
|
||||
tprints(", ");
|
||||
} else {
|
||||
printoldstat(tcp, tcp->u_arg[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* HAVE_STRUCT___OLD_KERNEL_STAT */
|
||||
|
||||
#if defined(SPARC) || defined(SPARC64)
|
||||
|
||||
SYS_FUNC(xstat)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
tprintf("%ld, ", tcp->u_arg[0]);
|
||||
printpath(tcp, tcp->u_arg[1]);
|
||||
tprints(", ");
|
||||
} else {
|
||||
printstat(tcp, tcp->u_arg[2]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
SYS_FUNC(fxstat)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
tprintf("%ld, ", tcp->u_arg[0]);
|
||||
printfd(tcp, tcp->u_arg[1]);
|
||||
tprints(", ");
|
||||
} else {
|
||||
printstat(tcp, tcp->u_arg[2]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* SPARC || SPARC64 */
|
5
flock.h
5
flock.h
@ -25,6 +25,9 @@
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef STRACE_FLOCK_H
|
||||
#define STRACE_FLOCK_H
|
||||
|
||||
#include <linux/fcntl.h>
|
||||
|
||||
#if defined HAVE_STRUCT_FLOCK
|
||||
@ -42,3 +45,5 @@ typedef struct __kernel_flock64 struct_kernel_flock64;
|
||||
#else
|
||||
# error struct flock64 definition not found in <linux/fcntl.h>
|
||||
#endif
|
||||
|
||||
#endif /* !STRACE_FLOCK_H */
|
||||
|
32
futex.c
32
futex.c
@ -30,10 +30,6 @@
|
||||
|
||||
#include "defs.h"
|
||||
|
||||
#ifdef HAVE_LINUX_FUTEX_H
|
||||
# include <linux/futex.h>
|
||||
#endif
|
||||
|
||||
#ifndef FUTEX_PRIVATE_FLAG
|
||||
# define FUTEX_PRIVATE_FLAG 128
|
||||
#endif
|
||||
@ -59,32 +55,40 @@ SYS_FUNC(futex)
|
||||
printaddr(uaddr);
|
||||
tprints(", ");
|
||||
printxval(futexops, op, "FUTEX_???");
|
||||
tprintf(", %u", val);
|
||||
switch (cmd) {
|
||||
case FUTEX_WAIT:
|
||||
tprintf(", %u", val);
|
||||
tprints(", ");
|
||||
print_timespec(tcp, timeout);
|
||||
break;
|
||||
case FUTEX_LOCK_PI:
|
||||
tprints(", ");
|
||||
print_timespec(tcp, timeout);
|
||||
break;
|
||||
case FUTEX_WAIT_BITSET:
|
||||
tprintf(", %u", val);
|
||||
tprints(", ");
|
||||
print_timespec(tcp, timeout);
|
||||
tprintf(", %x", val3);
|
||||
tprintf(", %#x", val3);
|
||||
break;
|
||||
case FUTEX_WAKE_BITSET:
|
||||
tprintf(", %x", val3);
|
||||
tprintf(", %u", val);
|
||||
tprintf(", %#x", val3);
|
||||
break;
|
||||
case FUTEX_REQUEUE:
|
||||
tprintf(", %u", val);
|
||||
tprintf(", %u, ", val2);
|
||||
printaddr(uaddr2);
|
||||
break;
|
||||
case FUTEX_CMP_REQUEUE:
|
||||
case FUTEX_CMP_REQUEUE_PI:
|
||||
tprintf(", %u", val);
|
||||
tprintf(", %u, ", val2);
|
||||
printaddr(uaddr2);
|
||||
tprintf(", %u", val3);
|
||||
break;
|
||||
case FUTEX_WAKE_OP:
|
||||
tprintf(", %u", val);
|
||||
tprintf(", %u, ", val2);
|
||||
printaddr(uaddr2);
|
||||
tprints(", {");
|
||||
@ -92,23 +96,29 @@ SYS_FUNC(futex)
|
||||
tprints("FUTEX_OP_OPARG_SHIFT|");
|
||||
printxval(futexwakeops, (val3 >> 28) & 0x7, "FUTEX_OP_???");
|
||||
tprintf(", %u, ", (val3 >> 12) & 0xfff);
|
||||
if ((val3 >> 24) & 8)
|
||||
tprints("FUTEX_OP_OPARG_SHIFT|");
|
||||
printxval(futexwakecmps, (val3 >> 24) & 0x7, "FUTEX_OP_CMP_???");
|
||||
printxval(futexwakecmps, (val3 >> 24) & 0xf, "FUTEX_OP_CMP_???");
|
||||
tprintf(", %u}", val3 & 0xfff);
|
||||
break;
|
||||
case FUTEX_WAIT_REQUEUE_PI:
|
||||
tprintf(", %u", val);
|
||||
tprints(", ");
|
||||
print_timespec(tcp, timeout);
|
||||
tprints(", ");
|
||||
printaddr(uaddr2);
|
||||
break;
|
||||
case FUTEX_FD:
|
||||
case FUTEX_WAKE:
|
||||
tprintf(", %u", val);
|
||||
break;
|
||||
case FUTEX_UNLOCK_PI:
|
||||
case FUTEX_TRYLOCK_PI:
|
||||
break;
|
||||
default:
|
||||
tprintf(", %lx, %lx, %x", timeout, uaddr2, val3);
|
||||
tprintf(", %u", val);
|
||||
tprintf(", %#lx", timeout);
|
||||
tprints(", ");
|
||||
printaddr(uaddr2);
|
||||
tprintf(", %#x", val3);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -25,8 +25,8 @@
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef GCC_COMPAT_H_
|
||||
#define GCC_COMPAT_H_
|
||||
#ifndef STRACE_GCC_COMPAT_H
|
||||
#define STRACE_GCC_COMPAT_H
|
||||
|
||||
#if defined __GNUC__ && defined __GNUC_MINOR__
|
||||
# define GNUC_PREREQ(maj, min) \
|
||||
@ -76,4 +76,4 @@
|
||||
# define ATTRIBUTE_ALLOC_SIZE(args) /* empty */
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#endif /* !STRACE_GCC_COMPAT_H */
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
list="$(sed -n '/^strace_SOURCES[[:space:]]*=/,/^[[:space:]]*# end of strace_SOURCES/ s/^[[:space:]]*\([[:alnum:]][^.]*\.c\)[[:space:]]*\\$/\1/p' Makefile.am |
|
||||
xargs -r grep -lx '#[[:space:]]*include[[:space:]]\+MPERS_DEFS' |
|
||||
list="$(sed -r -n '/^strace_SOURCES[[:space:]]*=/,/^[[:space:]]*# end of strace_SOURCES/ s/^[[:space:]]*([[:alnum:]][^.]*\.c)[[:space:]]*\\$/\1/p' Makefile.am |
|
||||
xargs -r grep -Elx '#[[:space:]]*include[[:space:]]+MPERS_DEFS' |
|
||||
tr '\n' ' ')"
|
||||
|
||||
cat > mpers.am <<EOF
|
||||
@ -9,5 +9,5 @@ cat > mpers.am <<EOF
|
||||
mpers_source_files = $list
|
||||
EOF
|
||||
|
||||
sed -n 's/^#[[:space:]]*include[[:space:]]*"xlat\/\([^."]\+\)\.h".*/extern const struct xlat \1[];/p' \
|
||||
sed -r -n 's/^#[[:space:]]*include[[:space:]]*"xlat\/([a-z][a-z_0-9]*)\.h".*/extern const struct xlat \1[];/p' \
|
||||
$list > mpers_xlat.h
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
echo 'enum {'
|
||||
echo 'SEN_printargs = 0,'
|
||||
sed -n '/printargs/! s/.*SEN(\([^)]*\)).*/\1/p' |
|
||||
sort -u |
|
||||
sed -r -n '/printargs/! s/.*SEN\(([^)]+)\).*/\1/p' |
|
||||
LC_COLLATE=C sort -u |
|
||||
sed 's/.*/SEN_&,/'
|
||||
echo '};'
|
||||
|
@ -1,28 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
convert() {
|
||||
sed -n '/^\(static \)\?const struct xlat '"$n"'\[\] = {$/,/^};$/{
|
||||
s/^[[:space:]]*XLAT(\([^)]\+\)).*/\1/p
|
||||
s/^[[:space:]]*{[[:space:]]*(\?\(1<<[^),[:space:]]\+\).*/\1/p
|
||||
s/.*not NULL-terminated.*/#unterminated/p
|
||||
s/^\([[:space:]]*{.*\)/\1/p
|
||||
s/^\t*\( *[/*].*\)/\1/p}' "$f" >> xlat/"$n".in
|
||||
sed -i '/^\(static \)\?const struct xlat '"$n"'\[\] = {$/,/^};$/c #include "xlat/'"$n"'.h"' "$f"
|
||||
}
|
||||
|
||||
for f; do
|
||||
for n in $(sed -n 's/^\(static \)\?const struct xlat \([a-z0-9_]\+\)\[\] = {$/\2/p' "$f"); do
|
||||
case "$n" in
|
||||
cacheflush_flags|struct_user_offsets) # skip
|
||||
;;
|
||||
ioprio_class|ioprio_who|mtd_mode_options|personality_options|syslog_action_type|ubi_volume_props|ubi_volume_types)
|
||||
echo '#unconditional' > xlat/"$n".in
|
||||
convert
|
||||
;;
|
||||
*)
|
||||
> xlat/"$n".in
|
||||
convert
|
||||
;;
|
||||
esac
|
||||
done
|
||||
done
|
29
io.c
29
io.c
@ -85,13 +85,15 @@ print_iovec(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
|
||||
case IOV_DECODE_STR:
|
||||
if (len > c->data_size)
|
||||
len = c->data_size;
|
||||
c->data_size -= len;
|
||||
if (c->data_size != (unsigned long) -1L)
|
||||
c->data_size -= len;
|
||||
printstr(tcp, iov[0], len);
|
||||
break;
|
||||
case IOV_DECODE_NETLINK:
|
||||
if (len > c->data_size)
|
||||
len = c->data_size;
|
||||
c->data_size -= len;
|
||||
if (c->data_size != (unsigned long) -1L)
|
||||
c->data_size -= len;
|
||||
decode_netlink(tcp, iov[0], iov[1]);
|
||||
break;
|
||||
default:
|
||||
@ -150,17 +152,6 @@ SYS_FUNC(writev)
|
||||
return RVAL_DECODED;
|
||||
}
|
||||
|
||||
/* The SH4 ABI does allow long longs in odd-numbered registers, but
|
||||
does not allow them to be split between registers and memory - and
|
||||
there are only four argument registers for normal functions. As a
|
||||
result pread takes an extra padding argument before the offset. This
|
||||
was changed late in the 2.4 series (around 2.4.20). */
|
||||
#if defined(SH)
|
||||
#define PREAD_OFFSET_ARG 4
|
||||
#else
|
||||
#define PREAD_OFFSET_ARG 3
|
||||
#endif
|
||||
|
||||
SYS_FUNC(pread)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
@ -172,7 +163,7 @@ SYS_FUNC(pread)
|
||||
else
|
||||
printstr(tcp, tcp->u_arg[1], tcp->u_rval);
|
||||
tprintf(", %lu, ", tcp->u_arg[2]);
|
||||
printllval(tcp, "%lld", PREAD_OFFSET_ARG);
|
||||
printllval(tcp, "%lld", 3);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -183,7 +174,7 @@ SYS_FUNC(pwrite)
|
||||
tprints(", ");
|
||||
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
|
||||
tprintf(", %lu, ", tcp->u_arg[2]);
|
||||
printllval(tcp, "%lld", PREAD_OFFSET_ARG);
|
||||
printllval(tcp, "%lld", 3);
|
||||
|
||||
return RVAL_DECODED;
|
||||
}
|
||||
@ -212,8 +203,8 @@ print_lld_from_low_high_val(struct tcb *tcp, int arg)
|
||||
# if SUPPORTED_PERSONALITIES > 1
|
||||
if (current_personality == 1) {
|
||||
tprintf("%lld",
|
||||
(widen_to_ull(tcp->u_arg[arg + 1]) << sizeof(long) * 8)
|
||||
| widen_to_ull(tcp->u_arg[arg]));
|
||||
(zero_extend_signed_to_ull(tcp->u_arg[arg + 1]) << sizeof(long) * 8)
|
||||
| zero_extend_signed_to_ull(tcp->u_arg[arg]));
|
||||
} else
|
||||
# endif
|
||||
{
|
||||
@ -221,8 +212,8 @@ print_lld_from_low_high_val(struct tcb *tcp, int arg)
|
||||
}
|
||||
#else /* SIZEOF_LONG_LONG > SIZEOF_LONG && !HAVE_STRUCT_TCB_EXT_ARG */
|
||||
tprintf("%lld",
|
||||
(widen_to_ull(tcp->u_arg[arg + 1]) << sizeof(long) * 8)
|
||||
| widen_to_ull(tcp->u_arg[arg]));
|
||||
(zero_extend_signed_to_ull(tcp->u_arg[arg + 1]) << sizeof(long) * 8)
|
||||
| zero_extend_signed_to_ull(tcp->u_arg[arg]));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,9 @@
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef STRACE_IPC_DEFS_H
|
||||
#define STRACE_IPC_DEFS_H
|
||||
|
||||
#ifdef HAVE_SYS_IPC_H
|
||||
# include <sys/ipc.h>
|
||||
#elif defined HAVE_LINUX_IPC_H
|
||||
@ -40,3 +43,5 @@
|
||||
#define PRINTCTL(flagset, arg, dflt) \
|
||||
if ((arg) & IPC_64) tprints("IPC_64|"); \
|
||||
printxval((flagset), (arg) &~ IPC_64, dflt)
|
||||
|
||||
#endif /* !STRACE_IPC_DEFS_H */
|
||||
|
10
ipc_msg.c
10
ipc_msg.c
@ -44,13 +44,15 @@
|
||||
|
||||
SYS_FUNC(msgget)
|
||||
{
|
||||
if (tcp->u_arg[0])
|
||||
tprintf("%#lx, ", tcp->u_arg[0]);
|
||||
const int key = (int) tcp->u_arg[0];
|
||||
if (key)
|
||||
tprintf("%#x", key);
|
||||
else
|
||||
tprints("IPC_PRIVATE, ");
|
||||
tprints("IPC_PRIVATE");
|
||||
tprints(", ");
|
||||
if (printflags(resource_flags, tcp->u_arg[1] & ~0777, NULL) != 0)
|
||||
tprints("|");
|
||||
tprintf("%#lo", tcp->u_arg[1] & 0777);
|
||||
print_numeric_umode_t(tcp->u_arg[1] & 0777);
|
||||
return RVAL_DECODED;
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@ print_msqid_ds(struct tcb *tcp, const long addr, int cmd)
|
||||
printuid("uid=", msqid_ds.msg_perm.uid);
|
||||
printuid(", gid=", msqid_ds.msg_perm.gid);
|
||||
tprints(", mode=");
|
||||
tprints(sprintmode(msqid_ds.msg_perm.mode));
|
||||
print_numeric_umode_t(msqid_ds.msg_perm.mode);
|
||||
|
||||
if (cmd != IPC_STAT) {
|
||||
tprints("}, ...}");
|
||||
@ -97,7 +97,7 @@ print_msqid_ds(struct tcb *tcp, const long addr, int cmd)
|
||||
SYS_FUNC(msgctl)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
tprintf("%lu, ", tcp->u_arg[0]);
|
||||
tprintf("%d, ", (int) tcp->u_arg[0]);
|
||||
PRINTCTL(msgctl_flags, tcp->u_arg[1], "MSG_???");
|
||||
tprints(", ");
|
||||
} else {
|
||||
|
25
ipc_sem.c
25
ipc_sem.c
@ -57,7 +57,7 @@ print_sembuf(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
|
||||
#endif
|
||||
|
||||
static void
|
||||
tprint_sembuf_array(struct tcb *tcp, const long addr, const unsigned long count)
|
||||
tprint_sembuf_array(struct tcb *tcp, const long addr, const unsigned int count)
|
||||
{
|
||||
#if defined HAVE_SYS_SEM_H || defined HAVE_LINUX_SEM_H
|
||||
struct sembuf sb;
|
||||
@ -66,12 +66,12 @@ tprint_sembuf_array(struct tcb *tcp, const long addr, const unsigned long count)
|
||||
#else
|
||||
printaddr(addr);
|
||||
#endif
|
||||
tprintf(", %lu", count);
|
||||
tprintf(", %u", count);
|
||||
}
|
||||
|
||||
SYS_FUNC(semop)
|
||||
{
|
||||
tprintf("%lu, ", tcp->u_arg[0]);
|
||||
tprintf("%d, ", (int) tcp->u_arg[0]);
|
||||
if (indirect_ipccall(tcp)) {
|
||||
tprint_sembuf_array(tcp, tcp->u_arg[3], tcp->u_arg[1]);
|
||||
} else {
|
||||
@ -82,7 +82,7 @@ SYS_FUNC(semop)
|
||||
|
||||
SYS_FUNC(semtimedop)
|
||||
{
|
||||
tprintf("%lu, ", tcp->u_arg[0]);
|
||||
tprintf("%d, ", (int) tcp->u_arg[0]);
|
||||
if (indirect_ipccall(tcp)) {
|
||||
tprint_sembuf_array(tcp, tcp->u_arg[3], tcp->u_arg[1]);
|
||||
tprints(", ");
|
||||
@ -101,23 +101,28 @@ SYS_FUNC(semtimedop)
|
||||
|
||||
SYS_FUNC(semget)
|
||||
{
|
||||
if (tcp->u_arg[0])
|
||||
tprintf("%#lx", tcp->u_arg[0]);
|
||||
const int key = (int) tcp->u_arg[0];
|
||||
if (key)
|
||||
tprintf("%#x", key);
|
||||
else
|
||||
tprints("IPC_PRIVATE");
|
||||
tprintf(", %lu, ", tcp->u_arg[1]);
|
||||
tprintf(", %d, ", (int) tcp->u_arg[1]);
|
||||
if (printflags(resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0)
|
||||
tprints("|");
|
||||
tprintf("%#lo", tcp->u_arg[2] & 0777);
|
||||
print_numeric_umode_t(tcp->u_arg[2] & 0777);
|
||||
return RVAL_DECODED;
|
||||
}
|
||||
|
||||
SYS_FUNC(semctl)
|
||||
{
|
||||
tprintf("%lu, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
|
||||
tprintf("%d, %d, ", (int) tcp->u_arg[0], (int) tcp->u_arg[1]);
|
||||
PRINTCTL(semctl_flags, tcp->u_arg[2], "SEM_???");
|
||||
tprints(", ");
|
||||
if (indirect_ipccall(tcp)) {
|
||||
if (indirect_ipccall(tcp)
|
||||
#ifdef SPARC64
|
||||
&& current_personality != 0
|
||||
#endif
|
||||
) {
|
||||
printnum_ptr(tcp, tcp->u_arg[3]);
|
||||
} else {
|
||||
tprintf("%#lx", tcp->u_arg[3]);
|
||||
|
19
ipc_shm.c
19
ipc_shm.c
@ -43,21 +43,22 @@
|
||||
|
||||
SYS_FUNC(shmget)
|
||||
{
|
||||
if (tcp->u_arg[0])
|
||||
tprintf("%#lx", tcp->u_arg[0]);
|
||||
const int key = (int) tcp->u_arg[0];
|
||||
if (key)
|
||||
tprintf("%#x", key);
|
||||
else
|
||||
tprints("IPC_PRIVATE");
|
||||
tprintf(", %lu, ", tcp->u_arg[1]);
|
||||
if (printflags(shm_resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0)
|
||||
tprints("|");
|
||||
tprintf("%#lo", tcp->u_arg[2] & 0777);
|
||||
print_numeric_umode_t(tcp->u_arg[2] & 0777);
|
||||
return RVAL_DECODED;
|
||||
}
|
||||
|
||||
SYS_FUNC(shmat)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
tprintf("%lu, ", tcp->u_arg[0]);
|
||||
tprintf("%d, ", (int) tcp->u_arg[0]);
|
||||
if (indirect_ipccall(tcp)) {
|
||||
printaddr(tcp->u_arg[3]);
|
||||
tprints(", ");
|
||||
@ -72,10 +73,14 @@ SYS_FUNC(shmat)
|
||||
if (syserror(tcp))
|
||||
return 0;
|
||||
if (indirect_ipccall(tcp)) {
|
||||
unsigned long raddr;
|
||||
if (umove(tcp, tcp->u_arg[2], &raddr) < 0)
|
||||
union {
|
||||
uint64_t r64;
|
||||
uint32_t r32;
|
||||
} u;
|
||||
if (umoven(tcp, tcp->u_arg[2], current_wordsize, &u) < 0)
|
||||
return RVAL_NONE;
|
||||
tcp->u_rval = raddr;
|
||||
tcp->u_rval = (sizeof(u.r32) == current_wordsize)
|
||||
? u.r32 : u.r64;
|
||||
}
|
||||
return RVAL_HEX;
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ print_shmid_ds(struct tcb *tcp, const long addr, int cmd)
|
||||
printuid("uid=", shmid_ds.shm_perm.uid);
|
||||
printuid(", gid=", shmid_ds.shm_perm.gid);
|
||||
tprints(", mode=");
|
||||
tprints(sprintmode(shmid_ds.shm_perm.mode));
|
||||
print_numeric_umode_t(shmid_ds.shm_perm.mode);
|
||||
|
||||
if (cmd != IPC_STAT) {
|
||||
tprints("}, ...}");
|
||||
@ -97,7 +97,7 @@ print_shmid_ds(struct tcb *tcp, const long addr, int cmd)
|
||||
SYS_FUNC(shmctl)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
tprintf("%lu, ", tcp->u_arg[0]);
|
||||
tprintf("%d, ", (int) tcp->u_arg[0]);
|
||||
PRINTCTL(shmctl_flags, tcp->u_arg[1], "SHM_???");
|
||||
tprints(", ");
|
||||
} else {
|
||||
|
@ -26,8 +26,7 @@
|
||||
*/
|
||||
|
||||
#ifndef STRACE_KERNEL_TYPES_H
|
||||
|
||||
# define STRACE_KERNEL_TYPES_H
|
||||
#define STRACE_KERNEL_TYPES_H
|
||||
|
||||
# if defined HAVE___KERNEL_LONG_T && defined HAVE___KERNEL_ULONG_T
|
||||
|
||||
@ -55,4 +54,4 @@ typedef struct {
|
||||
char d_name[1];
|
||||
} kernel_dirent;
|
||||
|
||||
#endif
|
||||
#endif /* !STRACE_KERNEL_TYPES_H */
|
||||
|
159
keyctl.c
159
keyctl.c
@ -26,11 +26,18 @@
|
||||
*/
|
||||
|
||||
#include "defs.h"
|
||||
#include "kernel_types.h"
|
||||
|
||||
typedef int32_t key_serial_t;
|
||||
|
||||
#include "xlat/key_spec.h"
|
||||
|
||||
struct keyctl_dh_params {
|
||||
int32_t private;
|
||||
int32_t prime;
|
||||
int32_t base;
|
||||
};
|
||||
|
||||
static void
|
||||
print_keyring_serial_number(key_serial_t id)
|
||||
{
|
||||
@ -85,12 +92,13 @@ keyctl_get_keyring_id(struct tcb *tcp, key_serial_t id, int create)
|
||||
}
|
||||
|
||||
static void
|
||||
keyctl_update_key(struct tcb *tcp, key_serial_t id, long addr, long len)
|
||||
keyctl_update_key(struct tcb *tcp, key_serial_t id, kernel_ulong_t addr,
|
||||
kernel_ulong_t len)
|
||||
{
|
||||
print_keyring_serial_number(id);
|
||||
tprints(", ");
|
||||
printstr(tcp, addr, len);
|
||||
tprintf(", %lu", len);
|
||||
tprintf(", %llu", zero_extend_signed_to_ull(len));
|
||||
}
|
||||
|
||||
static void
|
||||
@ -102,7 +110,8 @@ keyctl_handle_key_key(struct tcb *tcp, key_serial_t id1, key_serial_t id2)
|
||||
}
|
||||
|
||||
static void
|
||||
keyctl_read_key(struct tcb *tcp, key_serial_t id, long addr, long len)
|
||||
keyctl_read_key(struct tcb *tcp, key_serial_t id, kernel_ulong_t addr,
|
||||
kernel_ulong_t len, bool has_nul)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
print_keyring_serial_number(id);
|
||||
@ -111,17 +120,19 @@ keyctl_read_key(struct tcb *tcp, key_serial_t id, long addr, long len)
|
||||
if (syserror(tcp))
|
||||
printaddr(addr);
|
||||
else {
|
||||
long rval = tcp->u_rval > len ?
|
||||
len : (tcp->u_rval ? -1 : 0);
|
||||
printstr(tcp, addr, rval);
|
||||
kernel_ulong_t rval = (tcp->u_rval >= 0) &&
|
||||
((kernel_ulong_t) tcp->u_rval > len) ? len :
|
||||
(kernel_ulong_t) tcp->u_rval;
|
||||
printstr_ex(tcp, addr, rval, has_nul ?
|
||||
QUOTE_OMIT_TRAILING_0 : 0);
|
||||
}
|
||||
tprintf(", %lu", len);
|
||||
tprintf(", %llu", zero_extend_signed_to_ull(len));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
keyctl_keyring_search(struct tcb *tcp, key_serial_t id1, long addr1,
|
||||
long addr2, key_serial_t id2)
|
||||
keyctl_keyring_search(struct tcb *tcp, key_serial_t id1, kernel_ulong_t addr1,
|
||||
kernel_ulong_t addr2, key_serial_t id2)
|
||||
{
|
||||
print_keyring_serial_number(id1);
|
||||
tprints(", ");
|
||||
@ -133,31 +144,34 @@ keyctl_keyring_search(struct tcb *tcp, key_serial_t id1, long addr1,
|
||||
}
|
||||
|
||||
static void
|
||||
keyctl_chown_key(struct tcb *tcp, key_serial_t id, int user, int group)
|
||||
keyctl_chown_key(struct tcb *tcp, key_serial_t id, unsigned user,
|
||||
unsigned group)
|
||||
{
|
||||
print_keyring_serial_number(id);
|
||||
tprintf(", %d, %d", user, group);
|
||||
printuid(", ", user);
|
||||
printuid(", ", group);
|
||||
}
|
||||
|
||||
static void
|
||||
keyctl_instantiate_key(struct tcb *tcp, key_serial_t id1, long addr,
|
||||
long len, key_serial_t id2)
|
||||
keyctl_instantiate_key(struct tcb *tcp, key_serial_t id1, kernel_ulong_t addr,
|
||||
kernel_ulong_t len, key_serial_t id2)
|
||||
{
|
||||
print_keyring_serial_number(id1);
|
||||
tprints(", ");
|
||||
printstr(tcp, addr, len);
|
||||
tprintf(", %lu, ", len);
|
||||
tprintf(", %llu, ", zero_extend_signed_to_ull(len));
|
||||
print_keyring_serial_number(id2);
|
||||
}
|
||||
|
||||
static void
|
||||
keyctl_instantiate_key_iov(struct tcb *tcp, key_serial_t id1,
|
||||
long addr, long len, key_serial_t id2)
|
||||
kernel_ulong_t addr, kernel_ulong_t len,
|
||||
key_serial_t id2)
|
||||
{
|
||||
print_keyring_serial_number(id1);
|
||||
tprints(", ");
|
||||
tprint_iov(tcp, len, addr, IOV_DECODE_STR);
|
||||
tprintf(", %lu, ", len);
|
||||
tprintf(", %llu, ", zero_extend_signed_to_ull(len));
|
||||
print_keyring_serial_number(id2);
|
||||
}
|
||||
|
||||
@ -174,8 +188,16 @@ static void
|
||||
keyctl_reject_key(struct tcb *tcp, key_serial_t id1, unsigned timeout,
|
||||
unsigned error, key_serial_t id2)
|
||||
{
|
||||
const char *err_str = err_name(error);
|
||||
|
||||
print_keyring_serial_number(id1);
|
||||
tprintf(", %u, %u, ", timeout, error);
|
||||
tprintf(", %u, ", timeout);
|
||||
|
||||
if (err_str)
|
||||
tprintf("%s, ", err_str);
|
||||
else
|
||||
tprintf("%u, ", error);
|
||||
|
||||
print_keyring_serial_number(id2);
|
||||
}
|
||||
|
||||
@ -187,9 +209,10 @@ keyctl_set_timeout(struct tcb *tcp, key_serial_t id, unsigned timeout)
|
||||
}
|
||||
|
||||
static void
|
||||
keyctl_get_persistent(struct tcb *tcp, int uid, key_serial_t id)
|
||||
keyctl_get_persistent(struct tcb *tcp, unsigned uid, key_serial_t id)
|
||||
{
|
||||
tprintf("%d, ", uid);
|
||||
printuid("", uid);
|
||||
tprints(", ");
|
||||
print_keyring_serial_number(id);
|
||||
}
|
||||
|
||||
@ -203,105 +226,145 @@ keyctl_setperm_key(struct tcb *tcp, key_serial_t id, uint32_t perm)
|
||||
printflags(key_perms, perm, "KEY_???");
|
||||
}
|
||||
|
||||
static void
|
||||
print_dh_params(struct tcb *tcp, kernel_ulong_t addr)
|
||||
{
|
||||
struct keyctl_dh_params params;
|
||||
|
||||
if (umove_or_printaddr(tcp, addr, ¶ms))
|
||||
return;
|
||||
|
||||
tprints("{private=");
|
||||
print_keyring_serial_number(params.private);
|
||||
tprints(", prime=");
|
||||
print_keyring_serial_number(params.prime);
|
||||
tprints(", base=");
|
||||
print_keyring_serial_number(params.base);
|
||||
tprints("}");
|
||||
}
|
||||
|
||||
static void
|
||||
keyctl_dh_compute(struct tcb *tcp, kernel_ulong_t params, kernel_ulong_t buf,
|
||||
kernel_ulong_t len)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
print_dh_params(tcp, params);
|
||||
tprints(", ");
|
||||
} else {
|
||||
if (syserror(tcp)) {
|
||||
printaddr(buf);
|
||||
} else {
|
||||
kernel_ulong_t rval = (tcp->u_rval >= 0) &&
|
||||
((kernel_ulong_t) tcp->u_rval > len) ? len :
|
||||
(kernel_ulong_t) tcp->u_rval;
|
||||
printstr(tcp, buf, rval);
|
||||
}
|
||||
tprintf(", %llu", zero_extend_signed_to_ull(len));
|
||||
}
|
||||
}
|
||||
|
||||
#include "xlat/key_reqkeys.h"
|
||||
#include "xlat/keyctl_commands.h"
|
||||
|
||||
SYS_FUNC(keyctl)
|
||||
{
|
||||
int cmd = tcp->u_arg[0];
|
||||
unsigned long long arg2 = getarg_ull(tcp, 1);
|
||||
unsigned long long arg3 = getarg_ull(tcp, 2);
|
||||
unsigned long long arg4 = getarg_ull(tcp, 3);
|
||||
unsigned long long arg5 = getarg_ull(tcp, 4);
|
||||
|
||||
if (entering(tcp)) {
|
||||
printxval(keyctl_commands, cmd, "KEYCTL_???");
|
||||
tprints(", ");
|
||||
|
||||
/*
|
||||
* For now, KEYCTL_SESSION_TO_PARENT is the only cmd without
|
||||
* arguments.
|
||||
*/
|
||||
if (cmd != KEYCTL_SESSION_TO_PARENT)
|
||||
tprints(", ");
|
||||
}
|
||||
|
||||
switch (cmd) {
|
||||
case KEYCTL_GET_KEYRING_ID:
|
||||
keyctl_get_keyring_id(tcp, tcp->u_arg[1], tcp->u_arg[2]);
|
||||
keyctl_get_keyring_id(tcp, arg2, arg3);
|
||||
break;
|
||||
|
||||
case KEYCTL_JOIN_SESSION_KEYRING:
|
||||
printstr(tcp, tcp->u_arg[1], -1);
|
||||
printstr(tcp, arg2, -1);
|
||||
break;
|
||||
|
||||
case KEYCTL_UPDATE:
|
||||
keyctl_update_key(tcp, tcp->u_arg[1],
|
||||
tcp->u_arg[2], tcp->u_arg[3]);
|
||||
keyctl_update_key(tcp, arg2, arg3, arg4);
|
||||
break;
|
||||
|
||||
case KEYCTL_REVOKE:
|
||||
case KEYCTL_CLEAR:
|
||||
case KEYCTL_INVALIDATE:
|
||||
case KEYCTL_ASSUME_AUTHORITY:
|
||||
print_keyring_serial_number(tcp->u_arg[1]);
|
||||
print_keyring_serial_number(arg2);
|
||||
break;
|
||||
|
||||
case KEYCTL_LINK:
|
||||
case KEYCTL_UNLINK:
|
||||
keyctl_handle_key_key(tcp, tcp->u_arg[1], tcp->u_arg[2]);
|
||||
keyctl_handle_key_key(tcp, arg2, arg3);
|
||||
break;
|
||||
|
||||
case KEYCTL_DESCRIBE:
|
||||
case KEYCTL_READ:
|
||||
case KEYCTL_GET_SECURITY:
|
||||
keyctl_read_key(tcp, tcp->u_arg[1],
|
||||
tcp->u_arg[2], tcp->u_arg[3]);
|
||||
keyctl_read_key(tcp, arg2, arg3, arg4, cmd != KEYCTL_READ);
|
||||
return 0;
|
||||
|
||||
case KEYCTL_SEARCH:
|
||||
keyctl_keyring_search(tcp, tcp->u_arg[1], tcp->u_arg[2],
|
||||
tcp->u_arg[3], tcp->u_arg[4]);
|
||||
keyctl_keyring_search(tcp, arg2, arg3, arg4, arg5);
|
||||
break;
|
||||
|
||||
case KEYCTL_CHOWN:
|
||||
keyctl_chown_key(tcp, tcp->u_arg[1],
|
||||
tcp->u_arg[2], tcp->u_arg[3]);
|
||||
keyctl_chown_key(tcp, arg2, arg3, arg4);
|
||||
break;
|
||||
|
||||
case KEYCTL_SETPERM:
|
||||
keyctl_setperm_key(tcp, tcp->u_arg[1], tcp->u_arg[2]);
|
||||
keyctl_setperm_key(tcp, arg2, arg3);
|
||||
break;
|
||||
|
||||
case KEYCTL_INSTANTIATE:
|
||||
keyctl_instantiate_key(tcp, tcp->u_arg[1], tcp->u_arg[2],
|
||||
tcp->u_arg[3], tcp->u_arg[4]);
|
||||
keyctl_instantiate_key(tcp, arg2, arg3, arg4, arg5);
|
||||
break;
|
||||
|
||||
case KEYCTL_NEGATE:
|
||||
keyctl_negate_key(tcp, tcp->u_arg[1],
|
||||
tcp->u_arg[2], tcp->u_arg[3]);
|
||||
keyctl_negate_key(tcp, arg2, arg3, arg4);
|
||||
break;
|
||||
|
||||
case KEYCTL_SET_REQKEY_KEYRING:
|
||||
printxval(key_reqkeys, tcp->u_arg[1], "KEY_REQKEY_DEFL_???");
|
||||
printxval(key_reqkeys, arg2, "KEY_REQKEY_DEFL_???");
|
||||
break;
|
||||
|
||||
case KEYCTL_SET_TIMEOUT:
|
||||
keyctl_set_timeout(tcp, tcp->u_arg[1], tcp->u_arg[2]);
|
||||
keyctl_set_timeout(tcp, arg2, arg3);
|
||||
break;
|
||||
|
||||
case KEYCTL_SESSION_TO_PARENT:
|
||||
break;
|
||||
|
||||
case KEYCTL_REJECT:
|
||||
keyctl_reject_key(tcp, tcp->u_arg[1], tcp->u_arg[2],
|
||||
tcp->u_arg[3], tcp->u_arg[4]);
|
||||
keyctl_reject_key(tcp, arg2, arg3, arg4, arg5);
|
||||
break;
|
||||
|
||||
case KEYCTL_INSTANTIATE_IOV:
|
||||
keyctl_instantiate_key_iov(tcp, tcp->u_arg[1],
|
||||
tcp->u_arg[2], tcp->u_arg[3],
|
||||
tcp->u_arg[4]);
|
||||
keyctl_instantiate_key_iov(tcp, arg2, arg3, arg4, arg5);
|
||||
break;
|
||||
|
||||
case KEYCTL_GET_PERSISTENT:
|
||||
keyctl_get_persistent(tcp, tcp->u_arg[1], tcp->u_arg[2]);
|
||||
keyctl_get_persistent(tcp, arg2, arg3);
|
||||
break;
|
||||
|
||||
case KEYCTL_DH_COMPUTE:
|
||||
keyctl_dh_compute(tcp, arg2, arg3, arg4);
|
||||
return 0;
|
||||
|
||||
default:
|
||||
tprintf("%#lx, %#lx, %#lx, %#lx",
|
||||
tcp->u_arg[1], tcp->u_arg[2],
|
||||
tcp->u_arg[3], tcp->u_arg[4]);
|
||||
tprintf("%#llx, %#llx, %#llx, %#llx", arg2, arg3, arg4, arg5);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -284,6 +284,7 @@
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_CPU_FINI", _IOC_WRITE, 0x6445, 0x04 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_CPU_PREP", _IOC_WRITE, 0x6444, 0x18 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x20 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 },
|
||||
@ -392,10 +393,13 @@
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_SHADER_BO", _IOC_READ|_IOC_WRITE, 0x6445, 0x18 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_HANG_STATE", _IOC_READ|_IOC_WRITE, 0x6446, 0xa0 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6447, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa0 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_SEQNO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
|
||||
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_ATTACH", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
|
||||
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_SIGNAL", _IOC_WRITE, 0x6442, 0x08 },
|
||||
{ "drm/via_drm.h", "DRM_IOCTL_VIA_AGP_INIT", _IOC_READ|_IOC_WRITE, 0x6442, 0x08 },
|
||||
{ "drm/via_drm.h", "DRM_IOCTL_VIA_ALLOCMEM", _IOC_READ|_IOC_WRITE, 0x6440, 0x14 },
|
||||
{ "drm/via_drm.h", "DRM_IOCTL_VIA_BLIT_SYNC", _IOC_WRITE, 0x644f, 0x08 },
|
||||
@ -683,6 +687,16 @@
|
||||
{ "linux/cdrom.h", "DVD_AUTH", 0, 0x5392, 0 },
|
||||
{ "linux/cdrom.h", "DVD_READ_STRUCT", 0, 0x5390, 0 },
|
||||
{ "linux/cdrom.h", "DVD_WRITE_STRUCT", 0, 0x5391, 0 },
|
||||
{ "linux/cec.h", "CEC_ADAP_G_CAPS", _IOC_READ|_IOC_WRITE, 0x6100, 0x4c },
|
||||
{ "linux/cec.h", "CEC_ADAP_G_LOG_ADDRS", _IOC_READ, 0x6103, 0x5c },
|
||||
{ "linux/cec.h", "CEC_ADAP_G_PHYS_ADDR", _IOC_READ, 0x6101, 0x02 },
|
||||
{ "linux/cec.h", "CEC_ADAP_S_LOG_ADDRS", _IOC_READ|_IOC_WRITE, 0x6104, 0x5c },
|
||||
{ "linux/cec.h", "CEC_ADAP_S_PHYS_ADDR", _IOC_WRITE, 0x6102, 0x02 },
|
||||
{ "linux/cec.h", "CEC_DQEVENT", _IOC_READ|_IOC_WRITE, 0x6107, 0x50 },
|
||||
{ "linux/cec.h", "CEC_G_MODE", _IOC_READ, 0x6108, 0x04 },
|
||||
{ "linux/cec.h", "CEC_RECEIVE", _IOC_READ|_IOC_WRITE, 0x6106, 0x38 },
|
||||
{ "linux/cec.h", "CEC_S_MODE", _IOC_WRITE, 0x6109, 0x04 },
|
||||
{ "linux/cec.h", "CEC_TRANSMIT", _IOC_READ|_IOC_WRITE, 0x6105, 0x38 },
|
||||
{ "linux/chio.h", "CHIOEXCHANGE", _IOC_WRITE, 0x6302, 0x1c },
|
||||
{ "linux/chio.h", "CHIOGELEM", _IOC_WRITE, 0x6310, 0x6c },
|
||||
{ "linux/chio.h", "CHIOGPARAMS", _IOC_READ, 0x6306, 0x14 },
|
||||
@ -969,7 +983,11 @@
|
||||
{ "linux/gigaset_dev.h", "GIGASET_CONFIG", _IOC_READ|_IOC_WRITE, 0x4701, 0x04 },
|
||||
{ "linux/gigaset_dev.h", "GIGASET_REDIR", _IOC_READ|_IOC_WRITE, 0x4700, 0x04 },
|
||||
{ "linux/gigaset_dev.h", "GIGASET_VERSION", _IOC_READ|_IOC_WRITE, 0x4703, 0x10 },
|
||||
{ "linux/gpio.h", "GPIOHANDLE_GET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb408, 0x40 },
|
||||
{ "linux/gpio.h", "GPIOHANDLE_SET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb409, 0x40 },
|
||||
{ "linux/gpio.h", "GPIO_GET_CHIPINFO_IOCTL", _IOC_READ, 0xb401, 0x44 },
|
||||
{ "linux/gpio.h", "GPIO_GET_LINEEVENT_IOCTL", _IOC_READ|_IOC_WRITE, 0xb404, 0x30 },
|
||||
{ "linux/gpio.h", "GPIO_GET_LINEHANDLE_IOCTL", _IOC_READ|_IOC_WRITE, 0xb403, 0x16c },
|
||||
{ "linux/gpio.h", "GPIO_GET_LINEINFO_IOCTL", _IOC_READ|_IOC_WRITE, 0xb402, 0x48 },
|
||||
{ "linux/gsmmux.h", "GSMIOC_DISABLE_NET", _IOC_NONE, 0x4703, 0x00 },
|
||||
{ "linux/gsmmux.h", "GSMIOC_ENABLE_NET", _IOC_WRITE, 0x4702, 0x34 },
|
||||
@ -1418,30 +1436,14 @@
|
||||
{ "linux/lightnvm.h", "NVM_INFO", _IOC_READ|_IOC_WRITE, 0x4c20, 0x1000 },
|
||||
{ "linux/lirc.h", "LIRC_GET_FEATURES", _IOC_READ, 0x6900, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_LENGTH", _IOC_READ, 0x690f, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MAX_FILTER_PULSE", _IOC_READ, 0x690b, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MAX_FILTER_SPACE", _IOC_READ, 0x690d, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MAX_TIMEOUT", _IOC_READ, 0x6909, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MIN_FILTER_PULSE", _IOC_READ, 0x690a, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MIN_FILTER_SPACE", _IOC_READ, 0x690c, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MIN_TIMEOUT", _IOC_READ, 0x6908, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_CARRIER", _IOC_READ, 0x6904, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_DUTY_CYCLE", _IOC_READ, 0x6906, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_MODE", _IOC_READ, 0x6902, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_RESOLUTION", _IOC_READ, 0x6907, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_SEND_CARRIER", _IOC_READ, 0x6903, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_SEND_DUTY_CYCLE", _IOC_READ, 0x6905, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_SEND_MODE", _IOC_READ, 0x6901, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_NOTIFY_DECODE", _IOC_NONE, 0x6920, 0x00 },
|
||||
{ "linux/lirc.h", "LIRC_SETUP_END", _IOC_NONE, 0x6922, 0x00 },
|
||||
{ "linux/lirc.h", "LIRC_SETUP_START", _IOC_NONE, 0x6921, 0x00 },
|
||||
{ "linux/lirc.h", "LIRC_SET_MEASURE_CARRIER_MODE", _IOC_WRITE, 0x691d, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_CARRIER", _IOC_WRITE, 0x6914, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_CARRIER_RANGE", _IOC_WRITE, 0x691f, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_DUTY_CYCLE", _IOC_WRITE, 0x6916, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_DUTY_CYCLE_RANGE", _IOC_WRITE, 0x691e, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_FILTER", _IOC_WRITE, 0x691c, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_FILTER_PULSE", _IOC_WRITE, 0x691a, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_FILTER_SPACE", _IOC_WRITE, 0x691b, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_MODE", _IOC_WRITE, 0x6912, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_TIMEOUT", _IOC_WRITE, 0x6918, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_TIMEOUT_REPORTS", _IOC_WRITE, 0x6919, 0x04 },
|
||||
@ -1553,19 +1555,19 @@
|
||||
{ "linux/ndctl.h", "ND_IOCTL_SMART", _IOC_READ|_IOC_WRITE, 0x4e01, 0x84 },
|
||||
{ "linux/ndctl.h", "ND_IOCTL_SMART_THRESHOLD", _IOC_READ|_IOC_WRITE, 0x4e02, 0x0c },
|
||||
{ "linux/ndctl.h", "ND_IOCTL_VENDOR", _IOC_READ|_IOC_WRITE, 0x4e09, 0x08 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_CHANGE_CPMODE", _IOC_WRITE, 0x6e80, 0x10 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_CLEAN_SEGMENTS", _IOC_WRITE, 0x6e88, 0x78 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_DELETE_CHECKPOINT", _IOC_WRITE, 0x6e81, 0x08 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_BDESCS", _IOC_READ|_IOC_WRITE, 0x6e87, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_CPINFO", _IOC_READ, 0x6e82, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_CPSTAT", _IOC_READ, 0x6e83, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_SUINFO", _IOC_READ, 0x6e84, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_SUSTAT", _IOC_READ, 0x6e85, 0x30 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_VINFO", _IOC_READ|_IOC_WRITE, 0x6e86, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_RESIZE", _IOC_WRITE, 0x6e8b, 0x08 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_SET_ALLOC_RANGE", _IOC_WRITE, 0x6e8c, 0x10 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_SET_SUINFO", _IOC_WRITE, 0x6e8d, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_SYNC", _IOC_READ, 0x6e8a, 0x08 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_CHANGE_CPMODE", _IOC_WRITE, 0x6e80, 0x10 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_CLEAN_SEGMENTS", _IOC_WRITE, 0x6e88, 0x78 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_DELETE_CHECKPOINT", _IOC_WRITE, 0x6e81, 0x08 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_BDESCS", _IOC_READ|_IOC_WRITE, 0x6e87, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_CPINFO", _IOC_READ, 0x6e82, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_CPSTAT", _IOC_READ, 0x6e83, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_SUINFO", _IOC_READ, 0x6e84, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_SUSTAT", _IOC_READ, 0x6e85, 0x30 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_VINFO", _IOC_READ|_IOC_WRITE, 0x6e86, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_RESIZE", _IOC_WRITE, 0x6e8b, 0x08 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_SET_ALLOC_RANGE", _IOC_WRITE, 0x6e8c, 0x10 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_SET_SUINFO", _IOC_WRITE, 0x6e8d, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_SYNC", _IOC_READ, 0x6e8a, 0x08 },
|
||||
{ "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 },
|
||||
{ "linux/nvme_ioctl.h", "NVME_IOCTL_ID", _IOC_NONE, 0x4e40, 0x00 },
|
||||
{ "linux/nvme_ioctl.h", "NVME_IOCTL_IO_CMD", _IOC_READ|_IOC_WRITE, 0x4e43, 0x48 },
|
||||
@ -1739,6 +1741,17 @@
|
||||
{ "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 },
|
||||
{ "linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", _IOC_WRITE, 0xcd01, 0x04 },
|
||||
{ "linux/rfkill.h", "RFKILL_IOCTL_NOINPUT", _IOC_NONE, 0x5201, 0x00 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_ACCEPT", _IOC_READ|_IOC_WRITE, 0x6307, 0x08 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_BIND", _IOC_WRITE, 0x6305, 0x08 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_CLOSE", _IOC_WRITE, 0x6304, 0x02 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_CONNECT", _IOC_WRITE, 0x6308, 0x08 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_CREATE", _IOC_READ|_IOC_WRITE, 0x6303, 0x02 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_LISTEN", _IOC_WRITE, 0x6306, 0x02 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_RECEIVE", _IOC_READ|_IOC_WRITE, 0x630a, 0x10 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_SEND", _IOC_WRITE, 0x6309, 0x10 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_EP_GET_LIST", _IOC_READ|_IOC_WRITE, 0x6302, 0x04 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_EP_GET_LIST_SIZE", _IOC_READ|_IOC_WRITE, 0x6301, 0x04 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_MPORT_GET_LIST", _IOC_READ|_IOC_WRITE, 0x630b, 0x04 },
|
||||
{ "linux/rio_mport_cdev.h", "RIO_ALLOC_DMA", _IOC_READ|_IOC_WRITE, 0x6d13, 0x18 },
|
||||
{ "linux/rio_mport_cdev.h", "RIO_DEV_ADD", _IOC_WRITE, 0x6d17, 0x20 },
|
||||
{ "linux/rio_mport_cdev.h", "RIO_DEV_DEL", _IOC_WRITE, 0x6d18, 0x20 },
|
||||
@ -2244,6 +2257,8 @@
|
||||
{ "linux/vhost.h", "VHOST_SET_VRING_ERR", _IOC_WRITE, 0xaf22, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_SET_VRING_KICK", _IOC_WRITE, 0xaf20, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_SET_VRING_NUM", _IOC_WRITE, 0xaf10, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_VSOCK_SET_GUEST_CID", _IOC_WRITE, 0xaf60, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_VSOCK_SET_RUNNING", _IOC_WRITE, 0xaf61, 0x04 },
|
||||
{ "linux/videodev2.h", "VIDIOC_CREATE_BUFS", _IOC_READ|_IOC_WRITE, 0x565c, 0xf8 },
|
||||
{ "linux/videodev2.h", "VIDIOC_CROPCAP", _IOC_READ|_IOC_WRITE, 0x563a, 0x2c },
|
||||
{ "linux/videodev2.h", "VIDIOC_DBG_G_CHIP_INFO", _IOC_READ|_IOC_WRITE, 0x5666, 0xc8 },
|
||||
@ -2348,7 +2363,6 @@
|
||||
{ "linux/vmw_vmci_defs.h", "IOCTL_VMCI_SOCKETS_VERSION", _IOC_NONE, 0x07b4, 0x00 },
|
||||
{ "linux/vmw_vmci_defs.h", "IOCTL_VMCI_VERSION", _IOC_NONE, 0x079f, 0x00 },
|
||||
{ "linux/vmw_vmci_defs.h", "IOCTL_VMCI_VERSION2", _IOC_NONE, 0x07a7, 0x00 },
|
||||
{ "linux/vsp1.h", "VIDIOC_VSP1_LUT_CONFIG", _IOC_READ|_IOC_WRITE, 0x56c1, 0x400 },
|
||||
{ "linux/vt.h", "VT_ACTIVATE", 0, 0x5606, 0 },
|
||||
{ "linux/vt.h", "VT_DISALLOCATE", 0, 0x5608, 0 },
|
||||
{ "linux/vt.h", "VT_GETHIFONTMASK", 0, 0x560D, 0 },
|
||||
@ -2365,6 +2379,7 @@
|
||||
{ "linux/vt.h", "VT_UNLOCKSWITCH", 0, 0x560C, 0 },
|
||||
{ "linux/vt.h", "VT_WAITACTIVE", 0, 0x5607, 0 },
|
||||
{ "linux/vt.h", "VT_WAITEVENT", 0, 0x560E, 0 },
|
||||
{ "linux/vtpm_proxy.h", "VTPM_PROXY_IOC_NEW_DEV", _IOC_READ|_IOC_WRITE, 0xa100, 0x14 },
|
||||
{ "linux/watchdog.h", "WDIOC_GETBOOTSTATUS", _IOC_READ, 0x5702, 0x04 },
|
||||
{ "linux/watchdog.h", "WDIOC_GETPRETIMEOUT", _IOC_READ, 0x5709, 0x04 },
|
||||
{ "linux/watchdog.h", "WDIOC_GETSTATUS", _IOC_READ, 0x5701, 0x04 },
|
||||
@ -2771,8 +2786,6 @@
|
||||
{ "staging/android/ion_test.h", "ION_IOC_TEST_DMA_MAPPING", _IOC_WRITE, 0x49f1, 0x20 },
|
||||
{ "staging/android/ion_test.h", "ION_IOC_TEST_KERNEL_MAPPING", _IOC_WRITE, 0x49f2, 0x20 },
|
||||
{ "staging/android/ion_test.h", "ION_IOC_TEST_SET_FD", _IOC_NONE, 0x49f0, 0x00 },
|
||||
{ "staging/android/sw_sync.h", "SW_SYNC_IOC_CREATE_FENCE", _IOC_READ|_IOC_WRITE, 0x5700, 0x28 },
|
||||
{ "staging/android/sw_sync.h", "SW_SYNC_IOC_INC", _IOC_WRITE, 0x5701, 0x04 },
|
||||
{ "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 },
|
||||
{ "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 },
|
||||
{ "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 },
|
||||
@ -2813,6 +2826,7 @@
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_BIND_VIRQ", _IOC_NONE, 0x4500, 0x04 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_NOTIFY", _IOC_NONE, 0x4504, 0x04 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_RESET", _IOC_NONE, 0x4505, 0x00 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_RESTRICT_DOMID", _IOC_NONE, 0x4506, 0x02 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_UNBIND", _IOC_NONE, 0x4503, 0x04 },
|
||||
{ "xen/gntdev.h", "IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR", _IOC_NONE, 0x4702, 0x18 },
|
||||
{ "xen/gntdev.h", "IOCTL_GNTDEV_GRANT_COPY", _IOC_NONE, 0x4708, 0x08 },
|
||||
|
@ -284,6 +284,7 @@
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_CPU_FINI", _IOC_WRITE, 0x6445, 0x04 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_CPU_PREP", _IOC_WRITE, 0x6444, 0x18 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x20 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 },
|
||||
@ -392,10 +393,13 @@
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_SHADER_BO", _IOC_READ|_IOC_WRITE, 0x6445, 0x18 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_HANG_STATE", _IOC_READ|_IOC_WRITE, 0x6446, 0xa0 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6447, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa0 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_SEQNO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
|
||||
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_ATTACH", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
|
||||
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_SIGNAL", _IOC_WRITE, 0x6442, 0x08 },
|
||||
{ "drm/via_drm.h", "DRM_IOCTL_VIA_AGP_INIT", _IOC_READ|_IOC_WRITE, 0x6442, 0x08 },
|
||||
{ "drm/via_drm.h", "DRM_IOCTL_VIA_ALLOCMEM", _IOC_READ|_IOC_WRITE, 0x6440, 0x14 },
|
||||
{ "drm/via_drm.h", "DRM_IOCTL_VIA_BLIT_SYNC", _IOC_WRITE, 0x644f, 0x08 },
|
||||
@ -683,6 +687,16 @@
|
||||
{ "linux/cdrom.h", "DVD_AUTH", 0, 0x5392, 0 },
|
||||
{ "linux/cdrom.h", "DVD_READ_STRUCT", 0, 0x5390, 0 },
|
||||
{ "linux/cdrom.h", "DVD_WRITE_STRUCT", 0, 0x5391, 0 },
|
||||
{ "linux/cec.h", "CEC_ADAP_G_CAPS", _IOC_READ|_IOC_WRITE, 0x6100, 0x4c },
|
||||
{ "linux/cec.h", "CEC_ADAP_G_LOG_ADDRS", _IOC_READ, 0x6103, 0x5c },
|
||||
{ "linux/cec.h", "CEC_ADAP_G_PHYS_ADDR", _IOC_READ, 0x6101, 0x02 },
|
||||
{ "linux/cec.h", "CEC_ADAP_S_LOG_ADDRS", _IOC_READ|_IOC_WRITE, 0x6104, 0x5c },
|
||||
{ "linux/cec.h", "CEC_ADAP_S_PHYS_ADDR", _IOC_WRITE, 0x6102, 0x02 },
|
||||
{ "linux/cec.h", "CEC_DQEVENT", _IOC_READ|_IOC_WRITE, 0x6107, 0x50 },
|
||||
{ "linux/cec.h", "CEC_G_MODE", _IOC_READ, 0x6108, 0x04 },
|
||||
{ "linux/cec.h", "CEC_RECEIVE", _IOC_READ|_IOC_WRITE, 0x6106, 0x38 },
|
||||
{ "linux/cec.h", "CEC_S_MODE", _IOC_WRITE, 0x6109, 0x04 },
|
||||
{ "linux/cec.h", "CEC_TRANSMIT", _IOC_READ|_IOC_WRITE, 0x6105, 0x38 },
|
||||
{ "linux/chio.h", "CHIOEXCHANGE", _IOC_WRITE, 0x6302, 0x1c },
|
||||
{ "linux/chio.h", "CHIOGELEM", _IOC_WRITE, 0x6310, 0x6c },
|
||||
{ "linux/chio.h", "CHIOGPARAMS", _IOC_READ, 0x6306, 0x14 },
|
||||
@ -969,7 +983,11 @@
|
||||
{ "linux/gigaset_dev.h", "GIGASET_CONFIG", _IOC_READ|_IOC_WRITE, 0x4701, 0x04 },
|
||||
{ "linux/gigaset_dev.h", "GIGASET_REDIR", _IOC_READ|_IOC_WRITE, 0x4700, 0x04 },
|
||||
{ "linux/gigaset_dev.h", "GIGASET_VERSION", _IOC_READ|_IOC_WRITE, 0x4703, 0x10 },
|
||||
{ "linux/gpio.h", "GPIOHANDLE_GET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb408, 0x40 },
|
||||
{ "linux/gpio.h", "GPIOHANDLE_SET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb409, 0x40 },
|
||||
{ "linux/gpio.h", "GPIO_GET_CHIPINFO_IOCTL", _IOC_READ, 0xb401, 0x44 },
|
||||
{ "linux/gpio.h", "GPIO_GET_LINEEVENT_IOCTL", _IOC_READ|_IOC_WRITE, 0xb404, 0x30 },
|
||||
{ "linux/gpio.h", "GPIO_GET_LINEHANDLE_IOCTL", _IOC_READ|_IOC_WRITE, 0xb403, 0x16c },
|
||||
{ "linux/gpio.h", "GPIO_GET_LINEINFO_IOCTL", _IOC_READ|_IOC_WRITE, 0xb402, 0x48 },
|
||||
{ "linux/gsmmux.h", "GSMIOC_DISABLE_NET", _IOC_NONE, 0x4703, 0x00 },
|
||||
{ "linux/gsmmux.h", "GSMIOC_ENABLE_NET", _IOC_WRITE, 0x4702, 0x34 },
|
||||
@ -1418,30 +1436,14 @@
|
||||
{ "linux/lightnvm.h", "NVM_INFO", _IOC_READ|_IOC_WRITE, 0x4c20, 0x1000 },
|
||||
{ "linux/lirc.h", "LIRC_GET_FEATURES", _IOC_READ, 0x6900, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_LENGTH", _IOC_READ, 0x690f, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MAX_FILTER_PULSE", _IOC_READ, 0x690b, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MAX_FILTER_SPACE", _IOC_READ, 0x690d, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MAX_TIMEOUT", _IOC_READ, 0x6909, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MIN_FILTER_PULSE", _IOC_READ, 0x690a, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MIN_FILTER_SPACE", _IOC_READ, 0x690c, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MIN_TIMEOUT", _IOC_READ, 0x6908, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_CARRIER", _IOC_READ, 0x6904, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_DUTY_CYCLE", _IOC_READ, 0x6906, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_MODE", _IOC_READ, 0x6902, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_RESOLUTION", _IOC_READ, 0x6907, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_SEND_CARRIER", _IOC_READ, 0x6903, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_SEND_DUTY_CYCLE", _IOC_READ, 0x6905, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_SEND_MODE", _IOC_READ, 0x6901, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_NOTIFY_DECODE", _IOC_NONE, 0x6920, 0x00 },
|
||||
{ "linux/lirc.h", "LIRC_SETUP_END", _IOC_NONE, 0x6922, 0x00 },
|
||||
{ "linux/lirc.h", "LIRC_SETUP_START", _IOC_NONE, 0x6921, 0x00 },
|
||||
{ "linux/lirc.h", "LIRC_SET_MEASURE_CARRIER_MODE", _IOC_WRITE, 0x691d, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_CARRIER", _IOC_WRITE, 0x6914, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_CARRIER_RANGE", _IOC_WRITE, 0x691f, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_DUTY_CYCLE", _IOC_WRITE, 0x6916, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_DUTY_CYCLE_RANGE", _IOC_WRITE, 0x691e, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_FILTER", _IOC_WRITE, 0x691c, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_FILTER_PULSE", _IOC_WRITE, 0x691a, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_FILTER_SPACE", _IOC_WRITE, 0x691b, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_MODE", _IOC_WRITE, 0x6912, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_TIMEOUT", _IOC_WRITE, 0x6918, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_TIMEOUT_REPORTS", _IOC_WRITE, 0x6919, 0x04 },
|
||||
@ -1553,19 +1555,19 @@
|
||||
{ "linux/ndctl.h", "ND_IOCTL_SMART", _IOC_READ|_IOC_WRITE, 0x4e01, 0x84 },
|
||||
{ "linux/ndctl.h", "ND_IOCTL_SMART_THRESHOLD", _IOC_READ|_IOC_WRITE, 0x4e02, 0x0c },
|
||||
{ "linux/ndctl.h", "ND_IOCTL_VENDOR", _IOC_READ|_IOC_WRITE, 0x4e09, 0x08 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_CHANGE_CPMODE", _IOC_WRITE, 0x6e80, 0x10 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_CLEAN_SEGMENTS", _IOC_WRITE, 0x6e88, 0x78 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_DELETE_CHECKPOINT", _IOC_WRITE, 0x6e81, 0x08 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_BDESCS", _IOC_READ|_IOC_WRITE, 0x6e87, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_CPINFO", _IOC_READ, 0x6e82, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_CPSTAT", _IOC_READ, 0x6e83, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_SUINFO", _IOC_READ, 0x6e84, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_SUSTAT", _IOC_READ, 0x6e85, 0x30 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_VINFO", _IOC_READ|_IOC_WRITE, 0x6e86, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_RESIZE", _IOC_WRITE, 0x6e8b, 0x08 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_SET_ALLOC_RANGE", _IOC_WRITE, 0x6e8c, 0x10 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_SET_SUINFO", _IOC_WRITE, 0x6e8d, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_SYNC", _IOC_READ, 0x6e8a, 0x08 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_CHANGE_CPMODE", _IOC_WRITE, 0x6e80, 0x10 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_CLEAN_SEGMENTS", _IOC_WRITE, 0x6e88, 0x78 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_DELETE_CHECKPOINT", _IOC_WRITE, 0x6e81, 0x08 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_BDESCS", _IOC_READ|_IOC_WRITE, 0x6e87, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_CPINFO", _IOC_READ, 0x6e82, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_CPSTAT", _IOC_READ, 0x6e83, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_SUINFO", _IOC_READ, 0x6e84, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_SUSTAT", _IOC_READ, 0x6e85, 0x30 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_VINFO", _IOC_READ|_IOC_WRITE, 0x6e86, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_RESIZE", _IOC_WRITE, 0x6e8b, 0x08 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_SET_ALLOC_RANGE", _IOC_WRITE, 0x6e8c, 0x10 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_SET_SUINFO", _IOC_WRITE, 0x6e8d, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_SYNC", _IOC_READ, 0x6e8a, 0x08 },
|
||||
{ "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 },
|
||||
{ "linux/nvme_ioctl.h", "NVME_IOCTL_ID", _IOC_NONE, 0x4e40, 0x00 },
|
||||
{ "linux/nvme_ioctl.h", "NVME_IOCTL_IO_CMD", _IOC_READ|_IOC_WRITE, 0x4e43, 0x48 },
|
||||
@ -1739,6 +1741,17 @@
|
||||
{ "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 },
|
||||
{ "linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", _IOC_WRITE, 0xcd01, 0x04 },
|
||||
{ "linux/rfkill.h", "RFKILL_IOCTL_NOINPUT", _IOC_NONE, 0x5201, 0x00 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_ACCEPT", _IOC_READ|_IOC_WRITE, 0x6307, 0x08 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_BIND", _IOC_WRITE, 0x6305, 0x08 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_CLOSE", _IOC_WRITE, 0x6304, 0x02 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_CONNECT", _IOC_WRITE, 0x6308, 0x08 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_CREATE", _IOC_READ|_IOC_WRITE, 0x6303, 0x02 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_LISTEN", _IOC_WRITE, 0x6306, 0x02 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_RECEIVE", _IOC_READ|_IOC_WRITE, 0x630a, 0x10 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_SEND", _IOC_WRITE, 0x6309, 0x10 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_EP_GET_LIST", _IOC_READ|_IOC_WRITE, 0x6302, 0x04 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_EP_GET_LIST_SIZE", _IOC_READ|_IOC_WRITE, 0x6301, 0x04 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_MPORT_GET_LIST", _IOC_READ|_IOC_WRITE, 0x630b, 0x04 },
|
||||
{ "linux/rio_mport_cdev.h", "RIO_ALLOC_DMA", _IOC_READ|_IOC_WRITE, 0x6d13, 0x18 },
|
||||
{ "linux/rio_mport_cdev.h", "RIO_DEV_ADD", _IOC_WRITE, 0x6d17, 0x20 },
|
||||
{ "linux/rio_mport_cdev.h", "RIO_DEV_DEL", _IOC_WRITE, 0x6d18, 0x20 },
|
||||
@ -2244,6 +2257,8 @@
|
||||
{ "linux/vhost.h", "VHOST_SET_VRING_ERR", _IOC_WRITE, 0xaf22, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_SET_VRING_KICK", _IOC_WRITE, 0xaf20, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_SET_VRING_NUM", _IOC_WRITE, 0xaf10, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_VSOCK_SET_GUEST_CID", _IOC_WRITE, 0xaf60, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_VSOCK_SET_RUNNING", _IOC_WRITE, 0xaf61, 0x04 },
|
||||
{ "linux/videodev2.h", "VIDIOC_CREATE_BUFS", _IOC_READ|_IOC_WRITE, 0x565c, 0xf8 },
|
||||
{ "linux/videodev2.h", "VIDIOC_CROPCAP", _IOC_READ|_IOC_WRITE, 0x563a, 0x2c },
|
||||
{ "linux/videodev2.h", "VIDIOC_DBG_G_CHIP_INFO", _IOC_READ|_IOC_WRITE, 0x5666, 0xc8 },
|
||||
@ -2348,7 +2363,6 @@
|
||||
{ "linux/vmw_vmci_defs.h", "IOCTL_VMCI_SOCKETS_VERSION", _IOC_NONE, 0x07b4, 0x00 },
|
||||
{ "linux/vmw_vmci_defs.h", "IOCTL_VMCI_VERSION", _IOC_NONE, 0x079f, 0x00 },
|
||||
{ "linux/vmw_vmci_defs.h", "IOCTL_VMCI_VERSION2", _IOC_NONE, 0x07a7, 0x00 },
|
||||
{ "linux/vsp1.h", "VIDIOC_VSP1_LUT_CONFIG", _IOC_READ|_IOC_WRITE, 0x56c1, 0x400 },
|
||||
{ "linux/vt.h", "VT_ACTIVATE", 0, 0x5606, 0 },
|
||||
{ "linux/vt.h", "VT_DISALLOCATE", 0, 0x5608, 0 },
|
||||
{ "linux/vt.h", "VT_GETHIFONTMASK", 0, 0x560D, 0 },
|
||||
@ -2365,6 +2379,7 @@
|
||||
{ "linux/vt.h", "VT_UNLOCKSWITCH", 0, 0x560C, 0 },
|
||||
{ "linux/vt.h", "VT_WAITACTIVE", 0, 0x5607, 0 },
|
||||
{ "linux/vt.h", "VT_WAITEVENT", 0, 0x560E, 0 },
|
||||
{ "linux/vtpm_proxy.h", "VTPM_PROXY_IOC_NEW_DEV", _IOC_READ|_IOC_WRITE, 0xa100, 0x14 },
|
||||
{ "linux/watchdog.h", "WDIOC_GETBOOTSTATUS", _IOC_READ, 0x5702, 0x04 },
|
||||
{ "linux/watchdog.h", "WDIOC_GETPRETIMEOUT", _IOC_READ, 0x5709, 0x04 },
|
||||
{ "linux/watchdog.h", "WDIOC_GETSTATUS", _IOC_READ, 0x5701, 0x04 },
|
||||
@ -2771,8 +2786,6 @@
|
||||
{ "staging/android/ion_test.h", "ION_IOC_TEST_DMA_MAPPING", _IOC_WRITE, 0x49f1, 0x20 },
|
||||
{ "staging/android/ion_test.h", "ION_IOC_TEST_KERNEL_MAPPING", _IOC_WRITE, 0x49f2, 0x20 },
|
||||
{ "staging/android/ion_test.h", "ION_IOC_TEST_SET_FD", _IOC_NONE, 0x49f0, 0x00 },
|
||||
{ "staging/android/sw_sync.h", "SW_SYNC_IOC_CREATE_FENCE", _IOC_READ|_IOC_WRITE, 0x5700, 0x28 },
|
||||
{ "staging/android/sw_sync.h", "SW_SYNC_IOC_INC", _IOC_WRITE, 0x5701, 0x04 },
|
||||
{ "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 },
|
||||
{ "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 },
|
||||
{ "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 },
|
||||
@ -2813,6 +2826,7 @@
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_BIND_VIRQ", _IOC_NONE, 0x4500, 0x04 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_NOTIFY", _IOC_NONE, 0x4504, 0x04 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_RESET", _IOC_NONE, 0x4505, 0x00 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_RESTRICT_DOMID", _IOC_NONE, 0x4506, 0x02 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_UNBIND", _IOC_NONE, 0x4503, 0x04 },
|
||||
{ "xen/gntdev.h", "IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR", _IOC_NONE, 0x4702, 0x18 },
|
||||
{ "xen/gntdev.h", "IOCTL_GNTDEV_GRANT_COPY", _IOC_NONE, 0x4708, 0x08 },
|
||||
|
@ -1,8 +1,8 @@
|
||||
#ifndef sys_ARCH_mmap
|
||||
# define sys_ARCH_mmap sys_mmap
|
||||
#endif
|
||||
[ 0] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[ 1] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[ 0] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[ 1] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[ 2] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[ 3] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
[ 4] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
@ -80,7 +80,7 @@
|
||||
[ 76] = { 6, TD, SEN(splice), "splice" },
|
||||
[ 77] = { 4, TD, SEN(tee), "tee" },
|
||||
[ 78] = { 4, TD|TF, SEN(readlinkat), "readlinkat" },
|
||||
[ 79] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[ 79] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[ 80] = { 2, TD, SEN(fstat64), "fstat64" },
|
||||
[ 81] = { 0, 0, SEN(sync), "sync" },
|
||||
[ 82] = { 1, TD, SEN(fsync), "fsync" },
|
||||
|
@ -284,6 +284,7 @@
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_CPU_FINI", _IOC_WRITE, 0x6445, 0x04 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_CPU_PREP", _IOC_WRITE, 0x6444, 0x18 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x20 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 },
|
||||
@ -392,10 +393,13 @@
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_SHADER_BO", _IOC_READ|_IOC_WRITE, 0x6445, 0x18 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_HANG_STATE", _IOC_READ|_IOC_WRITE, 0x6446, 0xa0 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6447, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa0 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_SEQNO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
|
||||
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_ATTACH", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
|
||||
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_SIGNAL", _IOC_WRITE, 0x6442, 0x08 },
|
||||
{ "drm/via_drm.h", "DRM_IOCTL_VIA_AGP_INIT", _IOC_READ|_IOC_WRITE, 0x6442, 0x08 },
|
||||
{ "drm/via_drm.h", "DRM_IOCTL_VIA_ALLOCMEM", _IOC_READ|_IOC_WRITE, 0x6440, 0x20 },
|
||||
{ "drm/via_drm.h", "DRM_IOCTL_VIA_BLIT_SYNC", _IOC_WRITE, 0x644f, 0x08 },
|
||||
@ -683,6 +687,16 @@
|
||||
{ "linux/cdrom.h", "DVD_AUTH", 0, 0x5392, 0 },
|
||||
{ "linux/cdrom.h", "DVD_READ_STRUCT", 0, 0x5390, 0 },
|
||||
{ "linux/cdrom.h", "DVD_WRITE_STRUCT", 0, 0x5391, 0 },
|
||||
{ "linux/cec.h", "CEC_ADAP_G_CAPS", _IOC_READ|_IOC_WRITE, 0x6100, 0x4c },
|
||||
{ "linux/cec.h", "CEC_ADAP_G_LOG_ADDRS", _IOC_READ, 0x6103, 0x5c },
|
||||
{ "linux/cec.h", "CEC_ADAP_G_PHYS_ADDR", _IOC_READ, 0x6101, 0x02 },
|
||||
{ "linux/cec.h", "CEC_ADAP_S_LOG_ADDRS", _IOC_READ|_IOC_WRITE, 0x6104, 0x5c },
|
||||
{ "linux/cec.h", "CEC_ADAP_S_PHYS_ADDR", _IOC_WRITE, 0x6102, 0x02 },
|
||||
{ "linux/cec.h", "CEC_DQEVENT", _IOC_READ|_IOC_WRITE, 0x6107, 0x50 },
|
||||
{ "linux/cec.h", "CEC_G_MODE", _IOC_READ, 0x6108, 0x04 },
|
||||
{ "linux/cec.h", "CEC_RECEIVE", _IOC_READ|_IOC_WRITE, 0x6106, 0x38 },
|
||||
{ "linux/cec.h", "CEC_S_MODE", _IOC_WRITE, 0x6109, 0x04 },
|
||||
{ "linux/cec.h", "CEC_TRANSMIT", _IOC_READ|_IOC_WRITE, 0x6105, 0x38 },
|
||||
{ "linux/chio.h", "CHIOEXCHANGE", _IOC_WRITE, 0x6302, 0x1c },
|
||||
{ "linux/chio.h", "CHIOGELEM", _IOC_WRITE, 0x6310, 0x6c },
|
||||
{ "linux/chio.h", "CHIOGPARAMS", _IOC_READ, 0x6306, 0x14 },
|
||||
@ -969,7 +983,11 @@
|
||||
{ "linux/gigaset_dev.h", "GIGASET_CONFIG", _IOC_READ|_IOC_WRITE, 0x4701, 0x04 },
|
||||
{ "linux/gigaset_dev.h", "GIGASET_REDIR", _IOC_READ|_IOC_WRITE, 0x4700, 0x04 },
|
||||
{ "linux/gigaset_dev.h", "GIGASET_VERSION", _IOC_READ|_IOC_WRITE, 0x4703, 0x10 },
|
||||
{ "linux/gpio.h", "GPIOHANDLE_GET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb408, 0x40 },
|
||||
{ "linux/gpio.h", "GPIOHANDLE_SET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb409, 0x40 },
|
||||
{ "linux/gpio.h", "GPIO_GET_CHIPINFO_IOCTL", _IOC_READ, 0xb401, 0x44 },
|
||||
{ "linux/gpio.h", "GPIO_GET_LINEEVENT_IOCTL", _IOC_READ|_IOC_WRITE, 0xb404, 0x30 },
|
||||
{ "linux/gpio.h", "GPIO_GET_LINEHANDLE_IOCTL", _IOC_READ|_IOC_WRITE, 0xb403, 0x16c },
|
||||
{ "linux/gpio.h", "GPIO_GET_LINEINFO_IOCTL", _IOC_READ|_IOC_WRITE, 0xb402, 0x48 },
|
||||
{ "linux/gsmmux.h", "GSMIOC_DISABLE_NET", _IOC_NONE, 0x4703, 0x00 },
|
||||
{ "linux/gsmmux.h", "GSMIOC_ENABLE_NET", _IOC_WRITE, 0x4702, 0x34 },
|
||||
@ -1418,30 +1436,14 @@
|
||||
{ "linux/lightnvm.h", "NVM_INFO", _IOC_READ|_IOC_WRITE, 0x4c20, 0x1000 },
|
||||
{ "linux/lirc.h", "LIRC_GET_FEATURES", _IOC_READ, 0x6900, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_LENGTH", _IOC_READ, 0x690f, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MAX_FILTER_PULSE", _IOC_READ, 0x690b, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MAX_FILTER_SPACE", _IOC_READ, 0x690d, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MAX_TIMEOUT", _IOC_READ, 0x6909, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MIN_FILTER_PULSE", _IOC_READ, 0x690a, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MIN_FILTER_SPACE", _IOC_READ, 0x690c, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MIN_TIMEOUT", _IOC_READ, 0x6908, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_CARRIER", _IOC_READ, 0x6904, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_DUTY_CYCLE", _IOC_READ, 0x6906, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_MODE", _IOC_READ, 0x6902, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_RESOLUTION", _IOC_READ, 0x6907, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_SEND_CARRIER", _IOC_READ, 0x6903, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_SEND_DUTY_CYCLE", _IOC_READ, 0x6905, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_SEND_MODE", _IOC_READ, 0x6901, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_NOTIFY_DECODE", _IOC_NONE, 0x6920, 0x00 },
|
||||
{ "linux/lirc.h", "LIRC_SETUP_END", _IOC_NONE, 0x6922, 0x00 },
|
||||
{ "linux/lirc.h", "LIRC_SETUP_START", _IOC_NONE, 0x6921, 0x00 },
|
||||
{ "linux/lirc.h", "LIRC_SET_MEASURE_CARRIER_MODE", _IOC_WRITE, 0x691d, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_CARRIER", _IOC_WRITE, 0x6914, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_CARRIER_RANGE", _IOC_WRITE, 0x691f, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_DUTY_CYCLE", _IOC_WRITE, 0x6916, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_DUTY_CYCLE_RANGE", _IOC_WRITE, 0x691e, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_FILTER", _IOC_WRITE, 0x691c, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_FILTER_PULSE", _IOC_WRITE, 0x691a, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_FILTER_SPACE", _IOC_WRITE, 0x691b, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_MODE", _IOC_WRITE, 0x6912, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_TIMEOUT", _IOC_WRITE, 0x6918, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_TIMEOUT_REPORTS", _IOC_WRITE, 0x6919, 0x04 },
|
||||
@ -1553,19 +1555,19 @@
|
||||
{ "linux/ndctl.h", "ND_IOCTL_SMART", _IOC_READ|_IOC_WRITE, 0x4e01, 0x84 },
|
||||
{ "linux/ndctl.h", "ND_IOCTL_SMART_THRESHOLD", _IOC_READ|_IOC_WRITE, 0x4e02, 0x0c },
|
||||
{ "linux/ndctl.h", "ND_IOCTL_VENDOR", _IOC_READ|_IOC_WRITE, 0x4e09, 0x08 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_CHANGE_CPMODE", _IOC_WRITE, 0x6e80, 0x10 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_CLEAN_SEGMENTS", _IOC_WRITE, 0x6e88, 0x78 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_DELETE_CHECKPOINT", _IOC_WRITE, 0x6e81, 0x08 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_BDESCS", _IOC_READ|_IOC_WRITE, 0x6e87, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_CPINFO", _IOC_READ, 0x6e82, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_CPSTAT", _IOC_READ, 0x6e83, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_SUINFO", _IOC_READ, 0x6e84, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_SUSTAT", _IOC_READ, 0x6e85, 0x30 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_VINFO", _IOC_READ|_IOC_WRITE, 0x6e86, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_RESIZE", _IOC_WRITE, 0x6e8b, 0x08 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_SET_ALLOC_RANGE", _IOC_WRITE, 0x6e8c, 0x10 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_SET_SUINFO", _IOC_WRITE, 0x6e8d, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_SYNC", _IOC_READ, 0x6e8a, 0x08 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_CHANGE_CPMODE", _IOC_WRITE, 0x6e80, 0x10 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_CLEAN_SEGMENTS", _IOC_WRITE, 0x6e88, 0x78 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_DELETE_CHECKPOINT", _IOC_WRITE, 0x6e81, 0x08 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_BDESCS", _IOC_READ|_IOC_WRITE, 0x6e87, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_CPINFO", _IOC_READ, 0x6e82, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_CPSTAT", _IOC_READ, 0x6e83, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_SUINFO", _IOC_READ, 0x6e84, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_SUSTAT", _IOC_READ, 0x6e85, 0x30 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_VINFO", _IOC_READ|_IOC_WRITE, 0x6e86, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_RESIZE", _IOC_WRITE, 0x6e8b, 0x08 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_SET_ALLOC_RANGE", _IOC_WRITE, 0x6e8c, 0x10 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_SET_SUINFO", _IOC_WRITE, 0x6e8d, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_SYNC", _IOC_READ, 0x6e8a, 0x08 },
|
||||
{ "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 },
|
||||
{ "linux/nvme_ioctl.h", "NVME_IOCTL_ID", _IOC_NONE, 0x4e40, 0x00 },
|
||||
{ "linux/nvme_ioctl.h", "NVME_IOCTL_IO_CMD", _IOC_READ|_IOC_WRITE, 0x4e43, 0x48 },
|
||||
@ -1739,6 +1741,17 @@
|
||||
{ "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 },
|
||||
{ "linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", _IOC_WRITE, 0xcd01, 0x08 },
|
||||
{ "linux/rfkill.h", "RFKILL_IOCTL_NOINPUT", _IOC_NONE, 0x5201, 0x00 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_ACCEPT", _IOC_READ|_IOC_WRITE, 0x6307, 0x08 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_BIND", _IOC_WRITE, 0x6305, 0x08 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_CLOSE", _IOC_WRITE, 0x6304, 0x02 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_CONNECT", _IOC_WRITE, 0x6308, 0x08 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_CREATE", _IOC_READ|_IOC_WRITE, 0x6303, 0x02 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_LISTEN", _IOC_WRITE, 0x6306, 0x02 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_RECEIVE", _IOC_READ|_IOC_WRITE, 0x630a, 0x10 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_SEND", _IOC_WRITE, 0x6309, 0x10 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_EP_GET_LIST", _IOC_READ|_IOC_WRITE, 0x6302, 0x04 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_EP_GET_LIST_SIZE", _IOC_READ|_IOC_WRITE, 0x6301, 0x04 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_MPORT_GET_LIST", _IOC_READ|_IOC_WRITE, 0x630b, 0x04 },
|
||||
{ "linux/rio_mport_cdev.h", "RIO_ALLOC_DMA", _IOC_READ|_IOC_WRITE, 0x6d13, 0x18 },
|
||||
{ "linux/rio_mport_cdev.h", "RIO_DEV_ADD", _IOC_WRITE, 0x6d17, 0x20 },
|
||||
{ "linux/rio_mport_cdev.h", "RIO_DEV_DEL", _IOC_WRITE, 0x6d18, 0x20 },
|
||||
@ -2244,6 +2257,8 @@
|
||||
{ "linux/vhost.h", "VHOST_SET_VRING_ERR", _IOC_WRITE, 0xaf22, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_SET_VRING_KICK", _IOC_WRITE, 0xaf20, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_SET_VRING_NUM", _IOC_WRITE, 0xaf10, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_VSOCK_SET_GUEST_CID", _IOC_WRITE, 0xaf60, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_VSOCK_SET_RUNNING", _IOC_WRITE, 0xaf61, 0x04 },
|
||||
{ "linux/videodev2.h", "VIDIOC_CREATE_BUFS", _IOC_READ|_IOC_WRITE, 0x565c, 0x100 },
|
||||
{ "linux/videodev2.h", "VIDIOC_CROPCAP", _IOC_READ|_IOC_WRITE, 0x563a, 0x2c },
|
||||
{ "linux/videodev2.h", "VIDIOC_DBG_G_CHIP_INFO", _IOC_READ|_IOC_WRITE, 0x5666, 0xc8 },
|
||||
@ -2348,7 +2363,6 @@
|
||||
{ "linux/vmw_vmci_defs.h", "IOCTL_VMCI_SOCKETS_VERSION", _IOC_NONE, 0x07b4, 0x00 },
|
||||
{ "linux/vmw_vmci_defs.h", "IOCTL_VMCI_VERSION", _IOC_NONE, 0x079f, 0x00 },
|
||||
{ "linux/vmw_vmci_defs.h", "IOCTL_VMCI_VERSION2", _IOC_NONE, 0x07a7, 0x00 },
|
||||
{ "linux/vsp1.h", "VIDIOC_VSP1_LUT_CONFIG", _IOC_READ|_IOC_WRITE, 0x56c1, 0x400 },
|
||||
{ "linux/vt.h", "VT_ACTIVATE", 0, 0x5606, 0 },
|
||||
{ "linux/vt.h", "VT_DISALLOCATE", 0, 0x5608, 0 },
|
||||
{ "linux/vt.h", "VT_GETHIFONTMASK", 0, 0x560D, 0 },
|
||||
@ -2365,6 +2379,7 @@
|
||||
{ "linux/vt.h", "VT_UNLOCKSWITCH", 0, 0x560C, 0 },
|
||||
{ "linux/vt.h", "VT_WAITACTIVE", 0, 0x5607, 0 },
|
||||
{ "linux/vt.h", "VT_WAITEVENT", 0, 0x560E, 0 },
|
||||
{ "linux/vtpm_proxy.h", "VTPM_PROXY_IOC_NEW_DEV", _IOC_READ|_IOC_WRITE, 0xa100, 0x14 },
|
||||
{ "linux/watchdog.h", "WDIOC_GETBOOTSTATUS", _IOC_READ, 0x5702, 0x04 },
|
||||
{ "linux/watchdog.h", "WDIOC_GETPRETIMEOUT", _IOC_READ, 0x5709, 0x04 },
|
||||
{ "linux/watchdog.h", "WDIOC_GETSTATUS", _IOC_READ, 0x5701, 0x04 },
|
||||
@ -2771,8 +2786,6 @@
|
||||
{ "staging/android/ion_test.h", "ION_IOC_TEST_DMA_MAPPING", _IOC_WRITE, 0x49f1, 0x20 },
|
||||
{ "staging/android/ion_test.h", "ION_IOC_TEST_KERNEL_MAPPING", _IOC_WRITE, 0x49f2, 0x20 },
|
||||
{ "staging/android/ion_test.h", "ION_IOC_TEST_SET_FD", _IOC_NONE, 0x49f0, 0x00 },
|
||||
{ "staging/android/sw_sync.h", "SW_SYNC_IOC_CREATE_FENCE", _IOC_READ|_IOC_WRITE, 0x5700, 0x28 },
|
||||
{ "staging/android/sw_sync.h", "SW_SYNC_IOC_INC", _IOC_WRITE, 0x5701, 0x04 },
|
||||
{ "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 },
|
||||
{ "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 },
|
||||
{ "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 },
|
||||
@ -2813,6 +2826,7 @@
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_BIND_VIRQ", _IOC_NONE, 0x4500, 0x04 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_NOTIFY", _IOC_NONE, 0x4504, 0x04 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_RESET", _IOC_NONE, 0x4505, 0x00 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_RESTRICT_DOMID", _IOC_NONE, 0x4506, 0x02 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_UNBIND", _IOC_NONE, 0x4503, 0x04 },
|
||||
{ "xen/gntdev.h", "IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR", _IOC_NONE, 0x4702, 0x18 },
|
||||
{ "xen/gntdev.h", "IOCTL_GNTDEV_GRANT_COPY", _IOC_NONE, 0x4708, 0x10 },
|
||||
|
@ -1,5 +1,5 @@
|
||||
[ 0] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[ 1] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[ 0] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[ 1] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[ 2] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[ 3] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
[ 4] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
|
@ -361,8 +361,8 @@
|
||||
[395] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
|
||||
[396] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[397] = { 5, 0, SEN(tuxcall), "tuxcall" },
|
||||
[398] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[399] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[398] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[399] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[400] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[401] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[402] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -417,7 +417,7 @@
|
||||
[452] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[453] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[454] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[455] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[455] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[456] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[457] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[458] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
|
@ -268,8 +268,8 @@
|
||||
[240] = { 6, 0, SEN(futex), "futex" },
|
||||
[241] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
|
||||
[242] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[243] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[244] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[243] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[244] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[245] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[246] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[247] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -351,7 +351,7 @@
|
||||
[324] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[325] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[326] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[327] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[327] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[328] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[329] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[330] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
|
@ -1,2 +1,52 @@
|
||||
#include "kernel_types.h"
|
||||
#include <asm/stat.h>
|
||||
#ifndef STRACE_ASM_STAT_H
|
||||
#define STRACE_ASM_STAT_H
|
||||
|
||||
# include "kernel_types.h"
|
||||
|
||||
# undef dev_t
|
||||
# undef gid_t
|
||||
# undef ino_t
|
||||
# undef loff_t
|
||||
# undef mode_t
|
||||
# undef nlink_t
|
||||
# undef off64_t
|
||||
# undef off_t
|
||||
# undef time_t
|
||||
# undef uid_t
|
||||
|
||||
# define dev_t __kernel_dev_t
|
||||
# define gid_t __kernel_gid_t
|
||||
# define ino_t __kernel_ino_t
|
||||
# define loff_t __kernel_loff_t
|
||||
# define mode_t __kernel_mode_t
|
||||
# define nlink_t __kernel_nlink_t
|
||||
# define off64_t __kernel_off64_t
|
||||
# define off_t __kernel_off_t
|
||||
# define time_t __kernel_time_t
|
||||
# define uid_t __kernel_uid_t
|
||||
|
||||
# include <asm/stat.h>
|
||||
|
||||
# undef dev_t
|
||||
# undef gid_t
|
||||
# undef ino_t
|
||||
# undef loff_t
|
||||
# undef mode_t
|
||||
# undef nlink_t
|
||||
# undef off64_t
|
||||
# undef off_t
|
||||
# undef time_t
|
||||
# undef uid_t
|
||||
|
||||
# define dev_t dev_t
|
||||
# define gid_t gid_t
|
||||
# define ino_t ino_t
|
||||
# define loff_t loff_t
|
||||
# define mode_t mode_t
|
||||
# define nlink_t nlink_t
|
||||
# define off64_t off64_t
|
||||
# define off_t off_t
|
||||
# define time_t time_t
|
||||
# define uid_t uid_t
|
||||
|
||||
#endif /* !STRACE_ASM_STAT_H */
|
||||
|
@ -222,8 +222,8 @@
|
||||
[194] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[195] = { 2, 0, SEN(capget), "capget" },
|
||||
[196] = { 2, 0, SEN(capset), "capset" },
|
||||
[197] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[198] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[197] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[198] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[199] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[200] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[201] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -273,7 +273,7 @@
|
||||
[245] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[246] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[247] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[248] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[248] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[249] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[250] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[251] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
@ -351,3 +351,5 @@
|
||||
[323] = { 2, 0, SEN(membarrier), "membarrier", },
|
||||
[324] = { 3, TM, SEN(mlock2), "mlock2" },
|
||||
[325] = { 6, TD, SEN(copy_file_range), "copy_file_range" },
|
||||
[326] = { 6, TD, SEN(preadv2), "preadv2" },
|
||||
[327] = { 6, TD, SEN(pwritev2), "pwritev2" },
|
||||
|
@ -270,8 +270,8 @@
|
||||
[242] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[243] = { 1, 0, SEN(set_thread_area), "set_thread_area" },
|
||||
[244] = { 1, 0, SEN(get_thread_area), "get_thread_area" },
|
||||
[245] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[246] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[245] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[246] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[247] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[248] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[249] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -325,7 +325,7 @@
|
||||
[297] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[298] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[299] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[300] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[300] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[301] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[302] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[303] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
|
@ -26,6 +26,9 @@
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef STRACE_LINUX_DUMMY_H
|
||||
#define STRACE_LINUX_DUMMY_H
|
||||
|
||||
#ifndef HAVE_STRUCT___OLD_KERNEL_STAT
|
||||
#define sys_oldfstat printargs
|
||||
#define sys_oldstat printargs
|
||||
@ -156,3 +159,5 @@
|
||||
#define sys_oldolduname printargs
|
||||
#define sys_olduname printargs
|
||||
#define sys_sysfs printargs
|
||||
|
||||
#endif /* !STRACE_LINUX_DUMMY_H */
|
||||
|
@ -1,6 +0,0 @@
|
||||
#!/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
|
@ -217,8 +217,8 @@
|
||||
[212] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[213] = { 5, 0, SEN(printargs), "set_thread_area" },
|
||||
[214] = { 5, 0, SEN(printargs), "get_thread_area" },
|
||||
[215] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[216] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[215] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[216] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[217] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[218] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[219] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -282,7 +282,7 @@
|
||||
[277] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[278] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[279] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[280] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[280] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[281] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[282] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[283] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
|
@ -270,8 +270,8 @@
|
||||
[242] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[243] = { 1, 0, SEN(set_thread_area), "set_thread_area" },
|
||||
[244] = { 1, 0, SEN(get_thread_area), "get_thread_area" },
|
||||
[245] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[246] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[245] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[246] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[247] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[248] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[249] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -325,7 +325,7 @@
|
||||
[297] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[298] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[299] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[300] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[300] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[301] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[302] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[303] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
|
@ -254,8 +254,8 @@
|
||||
[1235] = { 3, TS, SEN(tgkill), "tgkill" },
|
||||
[1236] = { 1, TP|SE, SEN(exit), "exit_group" },
|
||||
[1237] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" },
|
||||
[1238] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[1239] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[1238] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[1239] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[1240] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[1241] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[1242] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
|
@ -1,3 +1,6 @@
|
||||
#ifndef STRACE_LINUX_INET_DIAG_H
|
||||
#define STRACE_LINUX_INET_DIAG_H
|
||||
|
||||
#define TCPDIAG_GETSOCK 18
|
||||
#define DCCPDIAG_GETSOCK 19
|
||||
|
||||
@ -36,3 +39,5 @@ struct inet_diag_msg {
|
||||
uint32_t idiag_uid;
|
||||
uint32_t idiag_inode;
|
||||
};
|
||||
|
||||
#endif /* !STRACE_LINUX_INET_DIAG_H */
|
||||
|
@ -266,8 +266,8 @@
|
||||
[238] = { 3, TM, SEN(madvise), "madvise" },
|
||||
[239] = { 3, TD, SEN(fcntl64), "fcntl64" },
|
||||
[240] = { 4, TD, SEN(readahead), "readahead" },
|
||||
[241] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[242] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[241] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[242] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[243] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[244] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[245] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -318,7 +318,7 @@
|
||||
[290] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[291] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[292] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[293] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[293] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[294] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[295] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[296] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
|
@ -270,8 +270,8 @@
|
||||
[242] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[243] = { 1, 0, SEN(set_thread_area), "set_thread_area" },
|
||||
[244] = { 1, 0, SEN(get_thread_area), "get_thread_area" },
|
||||
[245] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[246] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[245] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[246] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[247] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[248] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[249] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -325,7 +325,7 @@
|
||||
[297] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[298] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[299] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[300] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[300] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[301] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[302] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[303] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
|
@ -6,5 +6,5 @@ dstdir="$1"; shift
|
||||
for n in n32 n64 o32; do
|
||||
in="$srcdir/syscallent-$n.h"
|
||||
out="$dstdir/syscallent-$n-stub.h"
|
||||
sed -n '/^#if/,/^#else/ {s/^\([^{]*{[^,]*,[^,]*,[[:space:]]*\)[^,[:space:]]\+,[[:space:]]*"\([^"]\+".*\)/\1SEN(printargs), "'$n'_\2/; s/^\[.*/&/p}' < "$in" > "$out"
|
||||
sed -r -n '/^#if/,/^#else/ {s/^([^{]*\{[^,]*,[^,]*,[[:space:]]*)[^,[:space:]]+,[[:space:]]*"([^"]+".*)/\1SEN(printargs), "'$n':\2/; s/^\[.*/&/p}' < "$in" > "$out"
|
||||
done
|
||||
|
@ -200,8 +200,8 @@
|
||||
[6197] = { 3, 0, SEN(printargs), "cacheflush" },
|
||||
[6198] = { 3, 0, SEN(printargs), "cachectl" },
|
||||
[6199] = { 4, 0, SEN(sysmips), "sysmips" },
|
||||
[6200] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[6201] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[6200] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[6201] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[6202] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[6203] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[6204] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
|
@ -200,8 +200,8 @@
|
||||
[5197] = { 3, 0, SEN(printargs), "cacheflush" },
|
||||
[5198] = { 3, 0, SEN(printargs), "cachectl" },
|
||||
[5199] = { 4, 0, SEN(sysmips), "sysmips" },
|
||||
[5200] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[5201] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[5200] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[5201] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[5202] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[5203] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[5204] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
|
@ -241,8 +241,8 @@
|
||||
[4238] = { 6, 0, SEN(futex), "futex" },
|
||||
[4239] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
|
||||
[4240] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[4241] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[4242] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[4241] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[4242] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[4243] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[4244] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[4245] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -293,7 +293,7 @@
|
||||
[4290] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[4291] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[4292] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[4293] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[4293] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[4294] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[4295] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[4296] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
|
@ -1,3 +1,6 @@
|
||||
#ifndef STRACE_LINUX_NETLINK_DIAG_H
|
||||
#define STRACE_LINUX_NETLINK_DIAG_H
|
||||
|
||||
struct netlink_diag_req {
|
||||
uint8_t sdiag_family;
|
||||
uint8_t sdiag_protocol;
|
||||
@ -22,3 +25,5 @@ struct netlink_diag_msg {
|
||||
|
||||
#define NDIAG_SHOW_MEMINFO 0x00000001
|
||||
#define NDIAG_PROTO_ALL ((uint8_t) ~0)
|
||||
|
||||
#endif /* !STRACE_LINUX_NETLINK_DIAG_H */
|
||||
|
@ -253,8 +253,8 @@
|
||||
[224] = { },
|
||||
[225] = { 5, 0, SEN(printargs), "tuxcall" },
|
||||
[226] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
|
||||
[227] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[228] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[227] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[228] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[229] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[230] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[231] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -317,7 +317,7 @@
|
||||
[288] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[289] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[290] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[291] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[291] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[292] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[293] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[294] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
|
@ -1,2 +1,3 @@
|
||||
#include "powerpc/arch_regs.c"
|
||||
#undef ARCH_PC_REG
|
||||
#define ARCH_PC_REG ppc_regs.nip
|
||||
|
@ -248,8 +248,8 @@
|
||||
[224] = { },
|
||||
[225] = { 5, 0, SEN(printargs), "tuxcall" },
|
||||
[226] = { },
|
||||
[227] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[228] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[227] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[228] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[229] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[230] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[231] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
|
3
linux/riscv/arch_regs.c
Normal file
3
linux/riscv/arch_regs.c
Normal file
@ -0,0 +1,3 @@
|
||||
static struct user_regs_struct riscv_regs;
|
||||
#define ARCH_REGS_FOR_GETREGSET riscv_regs
|
||||
#define ARCH_PC_REG riscv_regs.pc
|
2
linux/riscv/errnoent1.h
Normal file
2
linux/riscv/errnoent1.h
Normal file
@ -0,0 +1,2 @@
|
||||
/* RISC-V rv32 and rv64 */
|
||||
#include "../errnoent.h"
|
10
linux/riscv/get_error.c
Normal file
10
linux/riscv/get_error.c
Normal file
@ -0,0 +1,10 @@
|
||||
static void
|
||||
get_error(struct tcb *tcp, const bool check_errno)
|
||||
{
|
||||
if (check_errno && is_negated_errno(riscv_regs.a0)) {
|
||||
tcp->u_rval = -1;
|
||||
tcp->u_error = -riscv_regs.a0;
|
||||
} else {
|
||||
tcp->u_rval = riscv_regs.a0;
|
||||
}
|
||||
}
|
7
linux/riscv/get_scno.c
Normal file
7
linux/riscv/get_scno.c
Normal file
@ -0,0 +1,7 @@
|
||||
/* Return codes: 1 - ok, 0 - ignore, other - error. */
|
||||
static int
|
||||
arch_get_scno(struct tcb *tcp)
|
||||
{
|
||||
tcp->scno = riscv_regs.a7;
|
||||
return 1;
|
||||
}
|
12
linux/riscv/get_syscall_args.c
Normal file
12
linux/riscv/get_syscall_args.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* Return -1 on error or 1 on success (never 0!). */
|
||||
static int
|
||||
get_syscall_args(struct tcb *tcp)
|
||||
{
|
||||
tcp->u_arg[0] = riscv_regs.a0;
|
||||
tcp->u_arg[1] = riscv_regs.a1;
|
||||
tcp->u_arg[2] = riscv_regs.a2;
|
||||
tcp->u_arg[3] = riscv_regs.a3;
|
||||
tcp->u_arg[4] = riscv_regs.a4;
|
||||
tcp->u_arg[5] = riscv_regs.a5;
|
||||
return 1;
|
||||
}
|
1
linux/riscv/ioctls_arch0.h
Normal file
1
linux/riscv/ioctls_arch0.h
Normal file
@ -0,0 +1 @@
|
||||
/* Generated by ioctls_gen.sh from definitions found in $linux/arch/riscv/include/ tree. */
|
1
linux/riscv/ioctls_arch1.h
Normal file
1
linux/riscv/ioctls_arch1.h
Normal file
@ -0,0 +1 @@
|
||||
#include "ioctls_arch0.h"
|
1
linux/riscv/ioctls_inc0.h
Normal file
1
linux/riscv/ioctls_inc0.h
Normal file
@ -0,0 +1 @@
|
||||
#include "64/ioctls_inc.h"
|
1
linux/riscv/ioctls_inc1.h
Normal file
1
linux/riscv/ioctls_inc1.h
Normal file
@ -0,0 +1 @@
|
||||
#include "32/ioctls_inc.h"
|
2
linux/riscv/signalent1.h
Normal file
2
linux/riscv/signalent1.h
Normal file
@ -0,0 +1,2 @@
|
||||
/* RISC-V rv32 and rv64 */
|
||||
#include "../signalent.h"
|
1
linux/riscv/syscallent.h
Normal file
1
linux/riscv/syscallent.h
Normal file
@ -0,0 +1 @@
|
||||
#include "64/syscallent.h"
|
1
linux/riscv/syscallent1.h
Normal file
1
linux/riscv/syscallent1.h
Normal file
@ -0,0 +1 @@
|
||||
#include "32/syscallent.h"
|
@ -271,8 +271,8 @@
|
||||
[240] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[241] = { 3, TS, SEN(tgkill), "tgkill" },
|
||||
[242] = { },
|
||||
[243] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[244] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[243] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[244] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[245] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[246] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[247] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -321,7 +321,7 @@
|
||||
[290] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[291] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[292] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[293] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[293] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[294] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[295] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[296] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
|
@ -1,2 +1 @@
|
||||
#include "s390/arch_regs.c"
|
||||
#define ARCH_PC_REG s390_regset.psw.addr
|
||||
|
@ -255,8 +255,8 @@
|
||||
[240] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[241] = { 3, TS, SEN(tgkill), "tgkill" },
|
||||
[242] = { },
|
||||
[243] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[244] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[243] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[244] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[245] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[246] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[247] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
|
@ -270,8 +270,8 @@
|
||||
[241] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
|
||||
[242] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[243 ... 244] = { },
|
||||
[245] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[246] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[245] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[246] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[247] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[248] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[249] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -325,7 +325,7 @@
|
||||
[297] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[298] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[299] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[300] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[300] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[301] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[302] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[303] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
@ -394,6 +394,20 @@
|
||||
[366] = { 6, 0, SEN(process_vm_writev), "process_vm_writev" },
|
||||
[367] = { 5, 0, SEN(kcmp), "kcmp" },
|
||||
[368] = { 3, TD, SEN(finit_module), "finit_module" },
|
||||
[369] = { 3, 0, SEN(sched_setattr), "sched_setattr" },
|
||||
[370] = { 4, 0, SEN(sched_getattr), "sched_getattr" },
|
||||
[371] = { 5, TD|TF, SEN(renameat2), "renameat2" },
|
||||
[372] = { 3, 0, SEN(seccomp), "seccomp", },
|
||||
[373] = { 3, 0, SEN(getrandom), "getrandom", },
|
||||
[374] = { 2, TD, SEN(memfd_create), "memfd_create", },
|
||||
[375] = { 3, TD, SEN(bpf), "bpf", },
|
||||
[376] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", },
|
||||
[377] = { 1, TD, SEN(userfaultfd), "userfaultfd", },
|
||||
[378] = { 2, 0, SEN(membarrier), "membarrier", },
|
||||
[379] = { 3, TM, SEN(mlock2), "mlock2" },
|
||||
[380] = { 6, TD, SEN(copy_file_range), "copy_file_range" },
|
||||
[381] = { 6, TD, SEN(preadv2), "preadv2" },
|
||||
[382] = { 6, TD, SEN(pwritev2), "pwritev2" },
|
||||
|
||||
#define SYS_socket_subcall 400
|
||||
#include "subcall.h"
|
||||
|
@ -296,8 +296,8 @@
|
||||
[269] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
|
||||
[270] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[271 ... 272] = { },
|
||||
[273] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[274] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[273] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[274] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[275] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[276] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[277] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -323,7 +323,7 @@
|
||||
[297] = { 3, TD, SEN(fstatfs64), "fstatfs64" },
|
||||
[298] = { 3, TS, SEN(tgkill), "tgkill" },
|
||||
[299] = { 2, TF, SEN(utimes), "utimes" },
|
||||
[300] = { 4, TD, SEN(fadvise64), "fadvise64_64" },
|
||||
[300] = { 4, TD, SEN(fadvise64_64), "fadvise64_64" },
|
||||
[301] = { },
|
||||
[302] = { 6, TM, SEN(mbind), "mbind" },
|
||||
[303] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
|
||||
@ -351,7 +351,7 @@
|
||||
[325] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[326] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[327] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[328] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[328] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[329] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[330] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[331] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
@ -403,6 +403,20 @@
|
||||
[377] = { 6, 0, SEN(process_vm_writev), "process_vm_writev" },
|
||||
[378] = { 5, 0, SEN(kcmp), "kcmp" },
|
||||
[379] = { 3, TD, SEN(finit_module), "finit_module" },
|
||||
[380] = { 3, 0, SEN(sched_setattr), "sched_setattr" },
|
||||
[381] = { 4, 0, SEN(sched_getattr), "sched_getattr" },
|
||||
[382] = { 5, TD|TF, SEN(renameat2), "renameat2" },
|
||||
[383] = { 3, 0, SEN(seccomp), "seccomp", },
|
||||
[384] = { 3, 0, SEN(getrandom), "getrandom", },
|
||||
[385] = { 2, TD, SEN(memfd_create), "memfd_create", },
|
||||
[386] = { 3, TD, SEN(bpf), "bpf", },
|
||||
[387] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", },
|
||||
[388] = { 1, TD, SEN(userfaultfd), "userfaultfd", },
|
||||
[389] = { 2, 0, SEN(membarrier), "membarrier", },
|
||||
[390] = { 3, TM, SEN(mlock2), "mlock2" },
|
||||
[391] = { 6, TD, SEN(copy_file_range), "copy_file_range" },
|
||||
[392] = { 6, TD, SEN(preadv2), "preadv2" },
|
||||
[393] = { 6, TD, SEN(pwritev2), "pwritev2" },
|
||||
|
||||
#define SYS_socket_subcall 400
|
||||
#include "subcall.h"
|
||||
|
@ -1,6 +1,11 @@
|
||||
#ifndef STRACE_LINUX_SOCK_DIAG_H
|
||||
#define STRACE_LINUX_SOCK_DIAG_H
|
||||
|
||||
#define SOCK_DIAG_BY_FAMILY 20
|
||||
|
||||
struct sock_diag_req {
|
||||
uint8_t sdiag_family;
|
||||
uint8_t sdiag_protocol;
|
||||
};
|
||||
|
||||
#endif /* !STRACE_LINUX_SOCK_DIAG_H */
|
||||
|
@ -1,12 +1,22 @@
|
||||
#ifndef SIZEOF_STRUCT_SPARC_STACKF
|
||||
# define SIZEOF_STRUCT_SPARC_STACKF sizeof(struct sparc_stackf)
|
||||
#endif
|
||||
#ifndef SIZEOF_STRUCT_PT_REGS
|
||||
# define SIZEOF_STRUCT_PT_REGS sizeof(struct pt_regs)
|
||||
#endif
|
||||
#ifndef PERSONALITY_WORDSIZE
|
||||
# define PERSONALITY_WORDSIZE PERSONALITY0_WORDSIZE
|
||||
#endif
|
||||
|
||||
static void
|
||||
arch_sigreturn(struct tcb *tcp)
|
||||
{
|
||||
long fp = sparc_regs.u_regs[U_REG_FP] + sizeof(struct sparc_stackf);
|
||||
long fp = sparc_regs.u_regs[U_REG_FP] +
|
||||
SIZEOF_STRUCT_SPARC_STACKF + SIZEOF_STRUCT_PT_REGS;
|
||||
struct {
|
||||
struct pt_regs si_regs;
|
||||
int si_mask;
|
||||
void *fpu_save;
|
||||
long insns[2] ATTRIBUTE_ALIGNED(8);
|
||||
unsigned int mask;
|
||||
char fpu_save[PERSONALITY_WORDSIZE];
|
||||
char insns[PERSONALITY_WORDSIZE * 2] ATTRIBUTE_ALIGNED(8);
|
||||
unsigned int extramask[NSIG / 8 / sizeof(int) - 1];
|
||||
} frame;
|
||||
|
||||
@ -15,9 +25,13 @@ arch_sigreturn(struct tcb *tcp)
|
||||
} else {
|
||||
unsigned int mask[NSIG / 8 / sizeof(int)];
|
||||
|
||||
mask[0] = frame.si_mask;
|
||||
mask[0] = frame.mask;
|
||||
memcpy(mask + 1, frame.extramask, sizeof(frame.extramask));
|
||||
tprintsigmask_addr("{mask=", mask);
|
||||
tprints("}");
|
||||
}
|
||||
}
|
||||
|
||||
#undef PERSONALITY_WORDSIZE
|
||||
#undef SIZEOF_STRUCT_PT_REGS
|
||||
#undef SIZEOF_STRUCT_SPARC_STACKF
|
||||
|
@ -266,8 +266,8 @@
|
||||
[265] = { 1, 0, SEN(timer_delete), "timer_delete" },
|
||||
[266] = { 3, 0, SEN(timer_create), "timer_create" },
|
||||
[267] = { },
|
||||
[268] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[269] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[268] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[269] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[270] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[271] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
[272] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
@ -287,7 +287,7 @@
|
||||
[286] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[287] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[288] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[289] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[289] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[290] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[291] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[292] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
|
@ -1,2 +1,3 @@
|
||||
#include "sparc/arch_regs.c"
|
||||
#undef ARCH_PC_REG
|
||||
#define ARCH_PC_REG sparc_regs.tpc
|
||||
|
@ -1 +1,19 @@
|
||||
#define arch_sigreturn sparc64_arch_sigreturn
|
||||
#include "sparc/arch_sigreturn.c"
|
||||
#undef arch_sigreturn
|
||||
|
||||
#define SIZEOF_STRUCT_SPARC_STACKF sizeof(struct sparc_stackf32)
|
||||
#define SIZEOF_STRUCT_PT_REGS sizeof(struct pt_regs32)
|
||||
#define PERSONALITY_WORDSIZE PERSONALITY1_WORDSIZE
|
||||
#define arch_sigreturn sparc32_arch_sigreturn
|
||||
#include "sparc/arch_sigreturn.c"
|
||||
#undef arch_sigreturn
|
||||
|
||||
static void
|
||||
arch_sigreturn(struct tcb *tcp)
|
||||
{
|
||||
if (current_personality == 1)
|
||||
sparc32_arch_sigreturn(tcp);
|
||||
else
|
||||
sparc64_arch_sigreturn(tcp);
|
||||
}
|
||||
|
@ -12,11 +12,11 @@ arch_get_scno(struct tcb *tcp)
|
||||
switch (trap) {
|
||||
case 0x91d02010:
|
||||
/* Linux/SPARC syscall trap. */
|
||||
update_personality(tcp, 0);
|
||||
update_personality(tcp, 1);
|
||||
break;
|
||||
case 0x91d0206d:
|
||||
/* Linux/SPARC64 syscall trap. */
|
||||
update_personality(tcp, 1);
|
||||
update_personality(tcp, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1 +1,27 @@
|
||||
#include "sparc/get_syscall_args.c"
|
||||
/* Return -1 on error or 1 on success (never 0!). */
|
||||
static int
|
||||
get_syscall_args(struct tcb *tcp)
|
||||
{
|
||||
if (tcp->currpers == 1) {
|
||||
/*
|
||||
* Zero-extend from 32 bits.
|
||||
* Use widen_to_long(tcp->u_arg[N]) in syscall handlers
|
||||
* if you need to use *sign-extended* parameter.
|
||||
*/
|
||||
tcp->u_arg[0] = (long) (uint32_t) sparc_regs.u_regs[U_REG_O0 + 0];
|
||||
tcp->u_arg[1] = (long) (uint32_t) sparc_regs.u_regs[U_REG_O0 + 1];
|
||||
tcp->u_arg[2] = (long) (uint32_t) sparc_regs.u_regs[U_REG_O0 + 2];
|
||||
tcp->u_arg[3] = (long) (uint32_t) sparc_regs.u_regs[U_REG_O0 + 3];
|
||||
tcp->u_arg[4] = (long) (uint32_t) sparc_regs.u_regs[U_REG_O0 + 4];
|
||||
tcp->u_arg[5] = (long) (uint32_t) sparc_regs.u_regs[U_REG_O0 + 5];
|
||||
} else {
|
||||
tcp->u_arg[0] = sparc_regs.u_regs[U_REG_O0 + 0];
|
||||
tcp->u_arg[1] = sparc_regs.u_regs[U_REG_O0 + 1];
|
||||
tcp->u_arg[2] = sparc_regs.u_regs[U_REG_O0 + 2];
|
||||
tcp->u_arg[3] = sparc_regs.u_regs[U_REG_O0 + 3];
|
||||
tcp->u_arg[4] = sparc_regs.u_regs[U_REG_O0 + 4];
|
||||
tcp->u_arg[5] = sparc_regs.u_regs[U_REG_O0 + 5];
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -1 +1,129 @@
|
||||
#include "sparc/ioctls_arch0.h"
|
||||
/* Generated by ioctls_gen.sh from definitions found in $linux/arch/sparc/include/ tree. */
|
||||
{ "asm/apc.h", "APCIOCGBPORT", _IOC_READ, 0x4104, 0x04 },
|
||||
{ "asm/apc.h", "APCIOCGCPWR", _IOC_READ, 0x4102, 0x04 },
|
||||
{ "asm/apc.h", "APCIOCGFANCTL", _IOC_READ, 0x4100, 0x04 },
|
||||
{ "asm/apc.h", "APCIOCSBPORT", _IOC_WRITE, 0x4105, 0x04 },
|
||||
{ "asm/apc.h", "APCIOCSCPWR", _IOC_WRITE, 0x4103, 0x04 },
|
||||
{ "asm/apc.h", "APCIOCSFANCTL", _IOC_WRITE, 0x4101, 0x04 },
|
||||
{ "asm/display7seg.h", "D7SIOCRD", _IOC_READ, 0x7045, 0x04 },
|
||||
{ "asm/display7seg.h", "D7SIOCTM", _IOC_NONE, 0x7047, 0x00 },
|
||||
{ "asm/display7seg.h", "D7SIOCWR", _IOC_WRITE, 0x7046, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_CPU_TEMPERATURE", _IOC_READ, 0x7040, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_CPU_VOLTAGE", _IOC_READ, 0x7041, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_ETHERNET_TEMPERATURE", _IOC_READ, 0x7047, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_FAN_STATUS", _IOC_READ, 0x7042, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_GLOBALADDRESS", _IOC_READ, 0x7049, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_MTHRBD_TEMPERATURE", _IOC_READ, 0x7048, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_SCSI_TEMPERATURE", _IOC_READ, 0x7046, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_SHUTDOWN_TEMPERATURE", _IOC_READ, 0x7044, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_VOLTAGE_STATUS", _IOC_READ, 0x7045, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_WARNING_TEMPERATURE", _IOC_READ, 0x7043, 0x04 },
|
||||
{ "asm/fbio.h", "FBIOGATTR", _IOC_READ, 0x4606, 0x58 },
|
||||
{ "asm/fbio.h", "FBIOGCURMAX", _IOC_READ, 0x461c, 0x04 },
|
||||
{ "asm/fbio.h", "FBIOGCURPOS", _IOC_WRITE, 0x461b, 0x04 },
|
||||
{ "asm/fbio.h", "FBIOGCURSOR", _IOC_READ|_IOC_WRITE, 0x4619, 0x48 },
|
||||
{ "asm/fbio.h", "FBIOGETCMAP", _IOC_WRITE, 0x4604, 0x20 },
|
||||
{ "asm/fbio.h", "FBIOGTYPE", _IOC_READ, 0x4600, 0x18 },
|
||||
{ "asm/fbio.h", "FBIOGVIDEO", _IOC_READ, 0x4608, 0x04 },
|
||||
{ "asm/fbio.h", "FBIOPUTCMAP", _IOC_WRITE, 0x4603, 0x20 },
|
||||
{ "asm/fbio.h", "FBIOSATTR", _IOC_WRITE, 0x4605, 0x58 },
|
||||
{ "asm/fbio.h", "FBIOSCURPOS", _IOC_WRITE, 0x461a, 0x04 },
|
||||
{ "asm/fbio.h", "FBIOSCURSOR", _IOC_WRITE, 0x4618, 0x48 },
|
||||
{ "asm/fbio.h", "FBIOSVIDEO", _IOC_WRITE, 0x4607, 0x04 },
|
||||
{ "asm/fbio.h", "FBIO_WID_ALLOC", _IOC_READ|_IOC_WRITE, 0x461e, 0x0c },
|
||||
{ "asm/fbio.h", "FBIO_WID_FREE", _IOC_WRITE, 0x461f, 0x0c },
|
||||
{ "asm/fbio.h", "FBIO_WID_GET", _IOC_READ|_IOC_WRITE, 0x4621, 0x10 },
|
||||
{ "asm/fbio.h", "FBIO_WID_PUT", _IOC_WRITE, 0x4620, 0x10 },
|
||||
{ "asm/fbio.h", "LEO_CLUTALLOC", _IOC_READ|_IOC_WRITE, 0x4c35, 0x0c },
|
||||
{ "asm/fbio.h", "LEO_CLUTFREE", _IOC_WRITE, 0x4c36, 0x0c },
|
||||
{ "asm/fbio.h", "LEO_CLUTPOST", _IOC_WRITE, 0x4c38, 0x28 },
|
||||
{ "asm/fbio.h", "LEO_CLUTREAD", _IOC_WRITE, 0x4c37, 0x28 },
|
||||
{ "asm/fbio.h", "LEO_GETGAMMA", _IOC_READ, 0x4c45, 0x04 },
|
||||
{ "asm/fbio.h", "LEO_SETGAMMA", _IOC_WRITE, 0x4c44, 0x04 },
|
||||
{ "asm/ioctls.h", "FIOASYNC", _IOC_WRITE, 0x667d, 0x04 },
|
||||
{ "asm/ioctls.h", "FIOCLEX", _IOC_NONE, 0x6601, 0x00 },
|
||||
{ "asm/ioctls.h", "FIONBIO", _IOC_WRITE, 0x667e, 0x04 },
|
||||
{ "asm/ioctls.h", "FIONCLEX", _IOC_NONE, 0x6602, 0x00 },
|
||||
{ "asm/ioctls.h", "FIONREAD", _IOC_READ, 0x667f, 0x04 },
|
||||
{ "asm/ioctls.h", "FIOQSIZE", _IOC_READ, 0x6680, 0x08 },
|
||||
{ "asm/ioctls.h", "TCFLSH", _IOC_NONE, 0x5407, 0x00 },
|
||||
{ "asm/ioctls.h", "TCGETA", _IOC_READ, 0x5401, 0x12 },
|
||||
{ "asm/ioctls.h", "TCGETS", _IOC_READ, 0x5408, 0x24 },
|
||||
{ "asm/ioctls.h", "TCGETS2", _IOC_READ, 0x540c, 0x2c },
|
||||
{ "asm/ioctls.h", "TCSBRK", _IOC_NONE, 0x5405, 0x00 },
|
||||
{ "asm/ioctls.h", "TCSBRKP", 0, 0x5425, 0 },
|
||||
{ "asm/ioctls.h", "TCSETA", _IOC_WRITE, 0x5402, 0x12 },
|
||||
{ "asm/ioctls.h", "TCSETAF", _IOC_WRITE, 0x5404, 0x12 },
|
||||
{ "asm/ioctls.h", "TCSETAW", _IOC_WRITE, 0x5403, 0x12 },
|
||||
{ "asm/ioctls.h", "TCSETS", _IOC_WRITE, 0x5409, 0x24 },
|
||||
{ "asm/ioctls.h", "TCSETS2", _IOC_WRITE, 0x540d, 0x2c },
|
||||
{ "asm/ioctls.h", "TCSETSF", _IOC_WRITE, 0x540b, 0x24 },
|
||||
{ "asm/ioctls.h", "TCSETSF2", _IOC_WRITE, 0x540f, 0x2c },
|
||||
{ "asm/ioctls.h", "TCSETSW", _IOC_WRITE, 0x540a, 0x24 },
|
||||
{ "asm/ioctls.h", "TCSETSW2", _IOC_WRITE, 0x540e, 0x2c },
|
||||
{ "asm/ioctls.h", "TCXONC", _IOC_NONE, 0x5406, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCCBRK", _IOC_NONE, 0x747a, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCCONS", _IOC_NONE, 0x7424, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCEXCL", _IOC_NONE, 0x740d, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCGDEV", _IOC_READ, 0x5432, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGETD", _IOC_READ, 0x7400, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGEXCL", _IOC_READ, 0x5440, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGICOUNT", 0, 0x545D, 0 },
|
||||
{ "asm/ioctls.h", "TIOCGLCKTRMIOS", 0, 0x5456, 0 },
|
||||
{ "asm/ioctls.h", "TIOCGPGRP", _IOC_READ, 0x7483, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGPKT", _IOC_READ, 0x5438, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGPTLCK", _IOC_READ, 0x5439, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGPTN", _IOC_READ, 0x7486, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGRS485", _IOC_READ, 0x5441, 0x20 },
|
||||
{ "asm/ioctls.h", "TIOCGSERIAL", 0, 0x541E, 0 },
|
||||
{ "asm/ioctls.h", "TIOCGSID", _IOC_READ, 0x7485, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGSOFTCAR", _IOC_READ, 0x7464, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGWINSZ", _IOC_READ, 0x7468, 0x08 },
|
||||
{ "asm/ioctls.h", "TIOCLINUX", 0, 0x541C, 0 },
|
||||
{ "asm/ioctls.h", "TIOCMBIC", _IOC_WRITE, 0x746b, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCMBIS", _IOC_WRITE, 0x746c, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCMGET", _IOC_READ, 0x746a, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCMIWAIT", 0, 0x545C, 0 },
|
||||
{ "asm/ioctls.h", "TIOCMSET", _IOC_WRITE, 0x746d, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCNOTTY", _IOC_NONE, 0x7471, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCNXCL", _IOC_NONE, 0x740e, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCOUTQ", _IOC_READ, 0x7473, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCPKT", _IOC_WRITE, 0x7470, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCSBRK", _IOC_NONE, 0x747b, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCSCTTY", _IOC_NONE, 0x7484, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCSERCONFIG", 0, 0x5453, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSERGETLSR", 0, 0x5459, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSERGETMULTI", 0, 0x545A, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSERGSTRUCT", 0, 0x5458, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSERGWILD", 0, 0x5454, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSERSETMULTI", 0, 0x545B, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSERSWILD", 0, 0x5455, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSETD", _IOC_WRITE, 0x7401, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCSIG", _IOC_WRITE, 0x7488, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCSLCKTRMIOS", 0, 0x5457, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSPGRP", _IOC_WRITE, 0x7482, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCSPTLCK", _IOC_WRITE, 0x7487, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCSRS485", _IOC_READ|_IOC_WRITE, 0x5442, 0x20 },
|
||||
{ "asm/ioctls.h", "TIOCSSERIAL", 0, 0x541F, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSSOFTCAR", _IOC_WRITE, 0x7465, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCSTART", _IOC_NONE, 0x746e, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCSTI", _IOC_WRITE, 0x7472, 0x01 },
|
||||
{ "asm/ioctls.h", "TIOCSTOP", _IOC_NONE, 0x746f, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCSWINSZ", _IOC_WRITE, 0x7467, 0x08 },
|
||||
{ "asm/ioctls.h", "TIOCVHANGUP", _IOC_NONE, 0x5437, 0x00 },
|
||||
{ "asm/openpromio.h", "OPIOCGET", _IOC_READ|_IOC_WRITE, 0x4f01, 0x20 },
|
||||
{ "asm/openpromio.h", "OPIOCGETCHILD", _IOC_READ|_IOC_WRITE, 0x4f06, 0x04 },
|
||||
{ "asm/openpromio.h", "OPIOCGETNEXT", _IOC_READ|_IOC_WRITE, 0x4f05, 0x04 },
|
||||
{ "asm/openpromio.h", "OPIOCGETOPTNODE", _IOC_READ, 0x4f04, 0x04 },
|
||||
{ "asm/openpromio.h", "OPIOCNEXTPROP", _IOC_READ|_IOC_WRITE, 0x4f03, 0x20 },
|
||||
{ "asm/openpromio.h", "OPIOCSET", _IOC_WRITE, 0x4f02, 0x20 },
|
||||
{ "asm/sockios.h", "FIOGETOWN", 0, 0x8903, 0 },
|
||||
{ "asm/sockios.h", "FIOSETOWN", 0, 0x8901, 0 },
|
||||
{ "asm/sockios.h", "SIOCATMARK", 0, 0x8905, 0 },
|
||||
{ "asm/sockios.h", "SIOCGPGRP", 0, 0x8904, 0 },
|
||||
{ "asm/sockios.h", "SIOCGSTAMP", 0, 0x8906, 0 },
|
||||
{ "asm/sockios.h", "SIOCGSTAMPNS", 0, 0x8907, 0 },
|
||||
{ "asm/sockios.h", "SIOCSPGRP", 0, 0x8902, 0 },
|
||||
{ "asm/watchdog.h", "WIOCGSTAT", _IOC_READ, 0x570c, 0x04 },
|
||||
{ "asm/watchdog.h", "WIOCSTART", _IOC_NONE, 0x570a, 0x00 },
|
||||
{ "asm/watchdog.h", "WIOCSTOP", _IOC_NONE, 0x570b, 0x00 },
|
||||
|
@ -1,129 +1 @@
|
||||
/* Generated by ioctls_gen.sh from definitions found in $linux/arch/sparc/include/ tree. */
|
||||
{ "asm/apc.h", "APCIOCGBPORT", _IOC_READ, 0x4104, 0x04 },
|
||||
{ "asm/apc.h", "APCIOCGCPWR", _IOC_READ, 0x4102, 0x04 },
|
||||
{ "asm/apc.h", "APCIOCGFANCTL", _IOC_READ, 0x4100, 0x04 },
|
||||
{ "asm/apc.h", "APCIOCSBPORT", _IOC_WRITE, 0x4105, 0x04 },
|
||||
{ "asm/apc.h", "APCIOCSCPWR", _IOC_WRITE, 0x4103, 0x04 },
|
||||
{ "asm/apc.h", "APCIOCSFANCTL", _IOC_WRITE, 0x4101, 0x04 },
|
||||
{ "asm/display7seg.h", "D7SIOCRD", _IOC_READ, 0x7045, 0x04 },
|
||||
{ "asm/display7seg.h", "D7SIOCTM", _IOC_NONE, 0x7047, 0x00 },
|
||||
{ "asm/display7seg.h", "D7SIOCWR", _IOC_WRITE, 0x7046, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_CPU_TEMPERATURE", _IOC_READ, 0x7040, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_CPU_VOLTAGE", _IOC_READ, 0x7041, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_ETHERNET_TEMPERATURE", _IOC_READ, 0x7047, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_FAN_STATUS", _IOC_READ, 0x7042, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_GLOBALADDRESS", _IOC_READ, 0x7049, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_MTHRBD_TEMPERATURE", _IOC_READ, 0x7048, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_SCSI_TEMPERATURE", _IOC_READ, 0x7046, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_SHUTDOWN_TEMPERATURE", _IOC_READ, 0x7044, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_VOLTAGE_STATUS", _IOC_READ, 0x7045, 0x04 },
|
||||
{ "asm/envctrl.h", "ENVCTRL_RD_WARNING_TEMPERATURE", _IOC_READ, 0x7043, 0x04 },
|
||||
{ "asm/fbio.h", "FBIOGATTR", _IOC_READ, 0x4606, 0x58 },
|
||||
{ "asm/fbio.h", "FBIOGCURMAX", _IOC_READ, 0x461c, 0x04 },
|
||||
{ "asm/fbio.h", "FBIOGCURPOS", _IOC_WRITE, 0x461b, 0x04 },
|
||||
{ "asm/fbio.h", "FBIOGCURSOR", _IOC_READ|_IOC_WRITE, 0x4619, 0x48 },
|
||||
{ "asm/fbio.h", "FBIOGETCMAP", _IOC_WRITE, 0x4604, 0x20 },
|
||||
{ "asm/fbio.h", "FBIOGTYPE", _IOC_READ, 0x4600, 0x18 },
|
||||
{ "asm/fbio.h", "FBIOGVIDEO", _IOC_READ, 0x4608, 0x04 },
|
||||
{ "asm/fbio.h", "FBIOPUTCMAP", _IOC_WRITE, 0x4603, 0x20 },
|
||||
{ "asm/fbio.h", "FBIOSATTR", _IOC_WRITE, 0x4605, 0x58 },
|
||||
{ "asm/fbio.h", "FBIOSCURPOS", _IOC_WRITE, 0x461a, 0x04 },
|
||||
{ "asm/fbio.h", "FBIOSCURSOR", _IOC_WRITE, 0x4618, 0x48 },
|
||||
{ "asm/fbio.h", "FBIOSVIDEO", _IOC_WRITE, 0x4607, 0x04 },
|
||||
{ "asm/fbio.h", "FBIO_WID_ALLOC", _IOC_READ|_IOC_WRITE, 0x461e, 0x0c },
|
||||
{ "asm/fbio.h", "FBIO_WID_FREE", _IOC_WRITE, 0x461f, 0x0c },
|
||||
{ "asm/fbio.h", "FBIO_WID_GET", _IOC_READ|_IOC_WRITE, 0x4621, 0x10 },
|
||||
{ "asm/fbio.h", "FBIO_WID_PUT", _IOC_WRITE, 0x4620, 0x10 },
|
||||
{ "asm/fbio.h", "LEO_CLUTALLOC", _IOC_READ|_IOC_WRITE, 0x4c35, 0x0c },
|
||||
{ "asm/fbio.h", "LEO_CLUTFREE", _IOC_WRITE, 0x4c36, 0x0c },
|
||||
{ "asm/fbio.h", "LEO_CLUTPOST", _IOC_WRITE, 0x4c38, 0x28 },
|
||||
{ "asm/fbio.h", "LEO_CLUTREAD", _IOC_WRITE, 0x4c37, 0x28 },
|
||||
{ "asm/fbio.h", "LEO_GETGAMMA", _IOC_READ, 0x4c45, 0x04 },
|
||||
{ "asm/fbio.h", "LEO_SETGAMMA", _IOC_WRITE, 0x4c44, 0x04 },
|
||||
{ "asm/ioctls.h", "FIOASYNC", _IOC_WRITE, 0x667d, 0x04 },
|
||||
{ "asm/ioctls.h", "FIOCLEX", _IOC_NONE, 0x6601, 0x00 },
|
||||
{ "asm/ioctls.h", "FIONBIO", _IOC_WRITE, 0x667e, 0x04 },
|
||||
{ "asm/ioctls.h", "FIONCLEX", _IOC_NONE, 0x6602, 0x00 },
|
||||
{ "asm/ioctls.h", "FIONREAD", _IOC_READ, 0x667f, 0x04 },
|
||||
{ "asm/ioctls.h", "FIOQSIZE", _IOC_READ, 0x6680, 0x08 },
|
||||
{ "asm/ioctls.h", "TCFLSH", _IOC_NONE, 0x5407, 0x00 },
|
||||
{ "asm/ioctls.h", "TCGETA", _IOC_READ, 0x5401, 0x12 },
|
||||
{ "asm/ioctls.h", "TCGETS", _IOC_READ, 0x5408, 0x38 },
|
||||
{ "asm/ioctls.h", "TCGETS2", _IOC_READ, 0x540c, 0x40 },
|
||||
{ "asm/ioctls.h", "TCSBRK", _IOC_NONE, 0x5405, 0x00 },
|
||||
{ "asm/ioctls.h", "TCSBRKP", 0, 0x5425, 0 },
|
||||
{ "asm/ioctls.h", "TCSETA", _IOC_WRITE, 0x5402, 0x12 },
|
||||
{ "asm/ioctls.h", "TCSETAF", _IOC_WRITE, 0x5404, 0x12 },
|
||||
{ "asm/ioctls.h", "TCSETAW", _IOC_WRITE, 0x5403, 0x12 },
|
||||
{ "asm/ioctls.h", "TCSETS", _IOC_WRITE, 0x5409, 0x38 },
|
||||
{ "asm/ioctls.h", "TCSETS2", _IOC_WRITE, 0x540d, 0x40 },
|
||||
{ "asm/ioctls.h", "TCSETSF", _IOC_WRITE, 0x540b, 0x38 },
|
||||
{ "asm/ioctls.h", "TCSETSF2", _IOC_WRITE, 0x540f, 0x40 },
|
||||
{ "asm/ioctls.h", "TCSETSW", _IOC_WRITE, 0x540a, 0x38 },
|
||||
{ "asm/ioctls.h", "TCSETSW2", _IOC_WRITE, 0x540e, 0x40 },
|
||||
{ "asm/ioctls.h", "TCXONC", _IOC_NONE, 0x5406, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCCBRK", _IOC_NONE, 0x747a, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCCONS", _IOC_NONE, 0x7424, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCEXCL", _IOC_NONE, 0x740d, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCGDEV", _IOC_READ, 0x5432, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGETD", _IOC_READ, 0x7400, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGEXCL", _IOC_READ, 0x5440, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGICOUNT", 0, 0x545D, 0 },
|
||||
{ "asm/ioctls.h", "TIOCGLCKTRMIOS", 0, 0x5456, 0 },
|
||||
{ "asm/ioctls.h", "TIOCGPGRP", _IOC_READ, 0x7483, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGPKT", _IOC_READ, 0x5438, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGPTLCK", _IOC_READ, 0x5439, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGPTN", _IOC_READ, 0x7486, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGRS485", _IOC_READ, 0x5441, 0x20 },
|
||||
{ "asm/ioctls.h", "TIOCGSERIAL", 0, 0x541E, 0 },
|
||||
{ "asm/ioctls.h", "TIOCGSID", _IOC_READ, 0x7485, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGSOFTCAR", _IOC_READ, 0x7464, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCGWINSZ", _IOC_READ, 0x7468, 0x08 },
|
||||
{ "asm/ioctls.h", "TIOCLINUX", 0, 0x541C, 0 },
|
||||
{ "asm/ioctls.h", "TIOCMBIC", _IOC_WRITE, 0x746b, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCMBIS", _IOC_WRITE, 0x746c, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCMGET", _IOC_READ, 0x746a, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCMIWAIT", 0, 0x545C, 0 },
|
||||
{ "asm/ioctls.h", "TIOCMSET", _IOC_WRITE, 0x746d, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCNOTTY", _IOC_NONE, 0x7471, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCNXCL", _IOC_NONE, 0x740e, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCOUTQ", _IOC_READ, 0x7473, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCPKT", _IOC_WRITE, 0x7470, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCSBRK", _IOC_NONE, 0x747b, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCSCTTY", _IOC_NONE, 0x7484, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCSERCONFIG", 0, 0x5453, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSERGETLSR", 0, 0x5459, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSERGETMULTI", 0, 0x545A, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSERGSTRUCT", 0, 0x5458, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSERGWILD", 0, 0x5454, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSERSETMULTI", 0, 0x545B, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSERSWILD", 0, 0x5455, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSETD", _IOC_WRITE, 0x7401, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCSIG", _IOC_WRITE, 0x7488, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCSLCKTRMIOS", 0, 0x5457, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSPGRP", _IOC_WRITE, 0x7482, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCSPTLCK", _IOC_WRITE, 0x7487, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCSRS485", _IOC_READ|_IOC_WRITE, 0x5442, 0x20 },
|
||||
{ "asm/ioctls.h", "TIOCSSERIAL", 0, 0x541F, 0 },
|
||||
{ "asm/ioctls.h", "TIOCSSOFTCAR", _IOC_WRITE, 0x7465, 0x04 },
|
||||
{ "asm/ioctls.h", "TIOCSTART", _IOC_NONE, 0x746e, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCSTI", _IOC_WRITE, 0x7472, 0x01 },
|
||||
{ "asm/ioctls.h", "TIOCSTOP", _IOC_NONE, 0x746f, 0x00 },
|
||||
{ "asm/ioctls.h", "TIOCSWINSZ", _IOC_WRITE, 0x7467, 0x08 },
|
||||
{ "asm/ioctls.h", "TIOCVHANGUP", _IOC_NONE, 0x5437, 0x00 },
|
||||
{ "asm/openpromio.h", "OPIOCGET", _IOC_READ|_IOC_WRITE, 0x4f01, 0x20 },
|
||||
{ "asm/openpromio.h", "OPIOCGETCHILD", _IOC_READ|_IOC_WRITE, 0x4f06, 0x04 },
|
||||
{ "asm/openpromio.h", "OPIOCGETNEXT", _IOC_READ|_IOC_WRITE, 0x4f05, 0x04 },
|
||||
{ "asm/openpromio.h", "OPIOCGETOPTNODE", _IOC_READ, 0x4f04, 0x04 },
|
||||
{ "asm/openpromio.h", "OPIOCNEXTPROP", _IOC_READ|_IOC_WRITE, 0x4f03, 0x20 },
|
||||
{ "asm/openpromio.h", "OPIOCSET", _IOC_WRITE, 0x4f02, 0x20 },
|
||||
{ "asm/sockios.h", "FIOGETOWN", 0, 0x8903, 0 },
|
||||
{ "asm/sockios.h", "FIOSETOWN", 0, 0x8901, 0 },
|
||||
{ "asm/sockios.h", "SIOCATMARK", 0, 0x8905, 0 },
|
||||
{ "asm/sockios.h", "SIOCGPGRP", 0, 0x8904, 0 },
|
||||
{ "asm/sockios.h", "SIOCGSTAMP", 0, 0x8906, 0 },
|
||||
{ "asm/sockios.h", "SIOCGSTAMPNS", 0, 0x8907, 0 },
|
||||
{ "asm/sockios.h", "SIOCSPGRP", 0, 0x8902, 0 },
|
||||
{ "asm/watchdog.h", "WIOCGSTAT", _IOC_READ, 0x570c, 0x04 },
|
||||
{ "asm/watchdog.h", "WIOCSTART", _IOC_NONE, 0x570a, 0x00 },
|
||||
{ "asm/watchdog.h", "WIOCSTOP", _IOC_NONE, 0x570b, 0x00 },
|
||||
#include "sparc/ioctls_arch0.h"
|
||||
|
@ -1 +1 @@
|
||||
#include "sparc/ioctls_inc0.h"
|
||||
#include "64/ioctls_inc.h"
|
||||
|
@ -1 +1 @@
|
||||
#include "64/ioctls_inc.h"
|
||||
#include "sparc/ioctls_inc0.h"
|
||||
|
@ -11,18 +11,18 @@
|
||||
[ 10] = { 1, TF, SEN(unlink), "unlink" },
|
||||
[ 11] = { 2, TF|TP|SE|SI, SEN(execv), "execv" },
|
||||
[ 12] = { 1, TF, SEN(chdir), "chdir" },
|
||||
[ 13] = { 3, TF, SEN(chown16), "chown" },
|
||||
[ 13] = { 3, TF, SEN(chown), "chown" },
|
||||
[ 14] = { 3, TF, SEN(mknod), "mknod" },
|
||||
[ 15] = { 2, TF, SEN(chmod), "chmod" },
|
||||
[ 16] = { 3, TF, SEN(chown16), "lchown" },
|
||||
[ 16] = { 3, TF, SEN(chown), "lchown" },
|
||||
[ 17] = { 1, TM|SI, SEN(brk), "brk" },
|
||||
[ 18] = { 4, 0, SEN(printargs), "perfctr" },
|
||||
[ 19] = { 3, TD, SEN(lseek), "lseek" },
|
||||
[ 20] = { 0, NF, SEN(getpid), "getpid" },
|
||||
[ 21] = { 2, 0, SEN(capget), "capget" },
|
||||
[ 22] = { 2, 0, SEN(capset), "capset" },
|
||||
[ 23] = { 1, 0, SEN(setuid16), "setuid" },
|
||||
[ 24] = { 0, NF, SEN(getuid16), "getuid" },
|
||||
[ 23] = { 1, 0, SEN(setuid), "setuid" },
|
||||
[ 24] = { 0, NF, SEN(getuid), "getuid" },
|
||||
[ 25] = { 4, TD, SEN(vmsplice), "vmsplice" },
|
||||
[ 26] = { 4, 0, SEN(ptrace), "ptrace" },
|
||||
[ 27] = { 1, 0, SEN(alarm), "alarm" },
|
||||
@ -43,11 +43,11 @@
|
||||
[ 43] = { 1, 0, SEN(times), "times" },
|
||||
[ 44] = { },
|
||||
[ 45] = { 2, TF, SEN(umount2), "umount2" },
|
||||
[ 46] = { 1, 0, SEN(setgid16), "setgid" },
|
||||
[ 47] = { 0, NF, SEN(getgid16), "getgid" },
|
||||
[ 46] = { 1, 0, SEN(setgid), "setgid" },
|
||||
[ 47] = { 0, NF, SEN(getgid), "getgid" },
|
||||
[ 48] = { 2, TS, SEN(signal), "signal" },
|
||||
[ 49] = { 0, NF, SEN(geteuid16), "geteuid" },
|
||||
[ 50] = { 0, NF, SEN(getegid16), "getegid" },
|
||||
[ 49] = { 0, NF, SEN(geteuid), "geteuid" },
|
||||
[ 50] = { 0, NF, SEN(getegid), "getegid" },
|
||||
[ 51] = { 1, TF, SEN(acct), "acct" },
|
||||
[ 52] = { 2, 0, SEN(printargs), "memory_ordering" },
|
||||
[ 53] = { },
|
||||
@ -75,8 +75,8 @@
|
||||
[ 76] = { 0, 0, SEN(vhangup), "vhangup" },
|
||||
[ 77] = { },
|
||||
[ 78] = { 3, TM, SEN(mincore), "mincore" },
|
||||
[ 79] = { 2, 0, SEN(getgroups16), "getgroups" },
|
||||
[ 80] = { 2, 0, SEN(setgroups16), "setgroups" },
|
||||
[ 79] = { 2, 0, SEN(getgroups), "getgroups" },
|
||||
[ 80] = { 2, 0, SEN(setgroups), "setgroups" },
|
||||
[ 81] = { 0, 0, SEN(getpgrp), "getpgrp" },
|
||||
[ 82] = { },
|
||||
[ 83] = { 3, 0, SEN(setitimer), "setitimer" },
|
||||
@ -119,11 +119,11 @@
|
||||
[120] = { 3, TD, SEN(readv), "readv" },
|
||||
[121] = { 3, TD, SEN(writev), "writev" },
|
||||
[122] = { 2, 0, SEN(settimeofday), "settimeofday" },
|
||||
[123] = { 3, TD, SEN(fchown16), "fchown" },
|
||||
[123] = { 3, TD, SEN(fchown), "fchown" },
|
||||
[124] = { 2, TD, SEN(fchmod), "fchmod" },
|
||||
[125] = { 6, TN, SEN(recvfrom), "recvfrom" },
|
||||
[126] = { 2, 0, SEN(setreuid16), "setreuid" },
|
||||
[127] = { 2, 0, SEN(setregid16), "setregid" },
|
||||
[126] = { 2, 0, SEN(setreuid), "setreuid" },
|
||||
[127] = { 2, 0, SEN(setregid), "setregid" },
|
||||
[128] = { 2, TF, SEN(rename), "rename" },
|
||||
[129] = { 2, TF, SEN(truncate), "truncate" },
|
||||
[130] = { 2, TD, SEN(ftruncate), "ftruncate" },
|
||||
@ -206,7 +206,7 @@
|
||||
[207] = { 3, 0, SEN(syslog), "syslog" },
|
||||
[208] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" },
|
||||
[209] = { 4, TD, SEN(fadvise64), "fadvise64" },
|
||||
[210] = { 4, TD, SEN(fadvise64), "fadvise64_64" },
|
||||
[210] = { 4, TD, SEN(fadvise64_64), "fadvise64_64" },
|
||||
[211] = { 3, TS, SEN(tgkill), "tgkill" },
|
||||
[212] = { 3, TP, SEN(waitpid), "waitpid" },
|
||||
[213] = { 1, TF, SEN(swapoff), "swapoff" },
|
||||
@ -224,8 +224,8 @@
|
||||
[225] = { 2, 0, SEN(bdflush), "bdflush" },
|
||||
[226] = { 3, 0, SEN(sysfs), "sysfs" },
|
||||
[227] = { 5, 0, SEN(afs_syscall), "afs_syscall" },
|
||||
[228] = { 1, NF, SEN(setfsuid16), "setfsuid" },
|
||||
[229] = { 1, NF, SEN(setfsgid16), "setfsgid" },
|
||||
[228] = { 1, NF, SEN(setfsuid), "setfsuid" },
|
||||
[229] = { 1, NF, SEN(setfsgid), "setfsgid" },
|
||||
[230] = { 5, TD, SEN(select), "_newselect" },
|
||||
[231] = { },
|
||||
[232] = { 6, TD, SEN(splice), "splice" },
|
||||
@ -264,8 +264,8 @@
|
||||
[265] = { 1, 0, SEN(timer_delete), "timer_delete" },
|
||||
[266] = { 3, 0, SEN(timer_create), "timer_create" },
|
||||
[267] = { },
|
||||
[268] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[269] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[268] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[269] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[270] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[271] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
[272] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
@ -285,7 +285,7 @@
|
||||
[286] = { 4, TD|TF, SEN(mknodat), "mknodat" },
|
||||
[287] = { 5, TD|TF, SEN(fchownat), "fchownat" },
|
||||
[288] = { 3, TD|TF, SEN(futimesat), "futimesat" },
|
||||
[289] = { 4, TD|TF, SEN(newfstatat), "fstatat64" },
|
||||
[289] = { 4, TD|TF, SEN(fstatat64), "fstatat64" },
|
||||
[290] = { 3, TD|TF, SEN(unlinkat), "unlinkat" },
|
||||
[291] = { 4, TD|TF, SEN(renameat), "renameat" },
|
||||
[292] = { 5, TD|TF, SEN(linkat), "linkat" },
|
||||
|
@ -1,3 +1 @@
|
||||
#define sys_mmap_4koff sys_mmap_pgoff
|
||||
#include "../sparc/syscallent.h"
|
||||
#undef sys_mmap_4koff
|
||||
|
@ -31,7 +31,6 @@
|
||||
|
||||
#define IS TRACE_INDIRECT_SUBCALL
|
||||
|
||||
[SYS_socket_subcall + 0] = { 6, 0, SEN(printargs), "socket_subcall" },
|
||||
[SYS_socket_subcall + 1] = { 3, IS|TN, SEN(socket), "socket" },
|
||||
[SYS_socket_subcall + 2] = { 3, IS|TN, SEN(bind), "bind" },
|
||||
[SYS_socket_subcall + 3] = { 3, IS|TN, SEN(connect), "connect" },
|
||||
@ -56,27 +55,14 @@
|
||||
#define SYS_socket_nsubcalls 21
|
||||
#define SYS_ipc_subcall ((SYS_socket_subcall) + (SYS_socket_nsubcalls))
|
||||
|
||||
[SYS_ipc_subcall + 0] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 1] = { 4, IS|TI, SEN(semop), "semop" },
|
||||
[SYS_ipc_subcall + 2] = { 3, IS|TI, SEN(semget), "semget" },
|
||||
[SYS_ipc_subcall + 3] = { 4, IS|TI, SEN(semctl), "semctl" },
|
||||
[SYS_ipc_subcall + 4] = { 5, IS|TI, SEN(semtimedop), "semtimedop" },
|
||||
[SYS_ipc_subcall + 5] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 6] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 7] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 8] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 9] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 10] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 11] = { 4, IS|TI, SEN(msgsnd), "msgsnd" },
|
||||
[SYS_ipc_subcall + 12] = { 5, IS|TI, SEN(msgrcv), "msgrcv" },
|
||||
[SYS_ipc_subcall + 13] = { 2, IS|TI, SEN(msgget), "msgget" },
|
||||
[SYS_ipc_subcall + 14] = { 4, IS|TI, SEN(msgctl), "msgctl" },
|
||||
[SYS_ipc_subcall + 15] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 16] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 17] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 18] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 19] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 20] = { 6, 0, SEN(printargs), "ipc_subcall" },
|
||||
[SYS_ipc_subcall + 21] = { 4, IS|TI|TM|SI, SEN(shmat), "shmat" },
|
||||
[SYS_ipc_subcall + 22] = { 4, IS|TI|TM|SI, SEN(shmdt), "shmdt" },
|
||||
[SYS_ipc_subcall + 23] = { 3, IS|TI, SEN(shmget), "shmget" },
|
||||
|
@ -26,6 +26,9 @@
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef STRACE_LINUX_SYSCALL_H
|
||||
#define STRACE_LINUX_SYSCALL_H
|
||||
|
||||
#include "dummy.h"
|
||||
#include "sys_func.h"
|
||||
#include "sen.h"
|
||||
@ -42,3 +45,5 @@ extern SYS_FUNC(setresuid16);
|
||||
extern SYS_FUNC(setreuid16);
|
||||
extern SYS_FUNC(setuid16);
|
||||
#endif
|
||||
|
||||
#endif /* !STRACE_LINUX_SYSCALL_H */
|
||||
|
@ -1,3 +1,6 @@
|
||||
#ifndef STRACE_LINUX_UNIX_DIAG_H
|
||||
#define STRACE_LINUX_UNIX_DIAG_H
|
||||
|
||||
struct unix_diag_req {
|
||||
uint8_t sdiag_family;
|
||||
uint8_t sdiag_protocol;
|
||||
@ -22,3 +25,5 @@ struct unix_diag_msg {
|
||||
|
||||
#define UNIX_DIAG_NAME 0
|
||||
#define UNIX_DIAG_PEER 2
|
||||
|
||||
#endif /* !STRACE_LINUX_UNIX_DIAG_H */
|
||||
|
@ -1,2 +1 @@
|
||||
#include "x86_64/arch_regs.c"
|
||||
#define ARCH_PC_REG (x86_io.iov_len == sizeof(i386_regs) ? i386_regs.eip : x86_64_regs.rip)
|
||||
|
@ -1,47 +1 @@
|
||||
/*
|
||||
* This is a replacement for x32 <asm/stat.h> which
|
||||
* appears to be wrong in older kernel headers.
|
||||
*/
|
||||
|
||||
#ifndef STRACE_ASM_STAT_H
|
||||
|
||||
# define STRACE_ASM_STAT_H
|
||||
|
||||
# include "kernel_types.h"
|
||||
|
||||
struct stat {
|
||||
kernel_ulong_t st_dev;
|
||||
kernel_ulong_t st_ino;
|
||||
kernel_ulong_t st_nlink;
|
||||
unsigned int st_mode;
|
||||
unsigned int st_uid;
|
||||
unsigned int st_gid;
|
||||
unsigned int pad0__;
|
||||
kernel_ulong_t st_rdev;
|
||||
kernel_long_t st_size;
|
||||
kernel_long_t st_blksize;
|
||||
kernel_long_t st_blocks;
|
||||
kernel_ulong_t st_atime;
|
||||
kernel_ulong_t st_atime_nsec;
|
||||
kernel_ulong_t st_mtime;
|
||||
kernel_ulong_t st_mtime_nsec;
|
||||
kernel_ulong_t st_ctime;
|
||||
kernel_ulong_t st_ctime_nsec;
|
||||
kernel_long_t pad1__[3];
|
||||
};
|
||||
|
||||
struct __old_kernel_stat {
|
||||
unsigned short st_dev;
|
||||
unsigned short st_ino;
|
||||
unsigned short st_mode;
|
||||
unsigned short st_nlink;
|
||||
unsigned short st_uid;
|
||||
unsigned short st_gid;
|
||||
unsigned short st_rdev;
|
||||
unsigned int st_size;
|
||||
unsigned int st_atime;
|
||||
unsigned int st_mtime;
|
||||
unsigned int st_ctime;
|
||||
};
|
||||
|
||||
#endif /* !STRACE_ASM_STAT_H */
|
||||
#include "x86_64/asm_stat.h"
|
||||
|
@ -284,6 +284,7 @@
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_CPU_FINI", _IOC_WRITE, 0x6445, 0x04 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_CPU_PREP", _IOC_WRITE, 0x6444, 0x18 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x20 },
|
||||
{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 },
|
||||
@ -392,10 +393,13 @@
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_SHADER_BO", _IOC_READ|_IOC_WRITE, 0x6445, 0x18 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_HANG_STATE", _IOC_READ|_IOC_WRITE, 0x6446, 0xa0 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6447, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0xa0 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
|
||||
{ "drm/vc4_drm.h", "DRM_IOCTL_VC4_WAIT_SEQNO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
|
||||
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_ATTACH", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 },
|
||||
{ "drm/vgem_drm.h", "DRM_IOCTL_VGEM_FENCE_SIGNAL", _IOC_WRITE, 0x6442, 0x08 },
|
||||
{ "drm/via_drm.h", "DRM_IOCTL_VIA_AGP_INIT", _IOC_READ|_IOC_WRITE, 0x6442, 0x08 },
|
||||
{ "drm/via_drm.h", "DRM_IOCTL_VIA_ALLOCMEM", _IOC_READ|_IOC_WRITE, 0x6440, 0x14 },
|
||||
{ "drm/via_drm.h", "DRM_IOCTL_VIA_BLIT_SYNC", _IOC_WRITE, 0x644f, 0x08 },
|
||||
@ -683,6 +687,16 @@
|
||||
{ "linux/cdrom.h", "DVD_AUTH", 0, 0x5392, 0 },
|
||||
{ "linux/cdrom.h", "DVD_READ_STRUCT", 0, 0x5390, 0 },
|
||||
{ "linux/cdrom.h", "DVD_WRITE_STRUCT", 0, 0x5391, 0 },
|
||||
{ "linux/cec.h", "CEC_ADAP_G_CAPS", _IOC_READ|_IOC_WRITE, 0x6100, 0x4c },
|
||||
{ "linux/cec.h", "CEC_ADAP_G_LOG_ADDRS", _IOC_READ, 0x6103, 0x5c },
|
||||
{ "linux/cec.h", "CEC_ADAP_G_PHYS_ADDR", _IOC_READ, 0x6101, 0x02 },
|
||||
{ "linux/cec.h", "CEC_ADAP_S_LOG_ADDRS", _IOC_READ|_IOC_WRITE, 0x6104, 0x5c },
|
||||
{ "linux/cec.h", "CEC_ADAP_S_PHYS_ADDR", _IOC_WRITE, 0x6102, 0x02 },
|
||||
{ "linux/cec.h", "CEC_DQEVENT", _IOC_READ|_IOC_WRITE, 0x6107, 0x50 },
|
||||
{ "linux/cec.h", "CEC_G_MODE", _IOC_READ, 0x6108, 0x04 },
|
||||
{ "linux/cec.h", "CEC_RECEIVE", _IOC_READ|_IOC_WRITE, 0x6106, 0x38 },
|
||||
{ "linux/cec.h", "CEC_S_MODE", _IOC_WRITE, 0x6109, 0x04 },
|
||||
{ "linux/cec.h", "CEC_TRANSMIT", _IOC_READ|_IOC_WRITE, 0x6105, 0x38 },
|
||||
{ "linux/chio.h", "CHIOEXCHANGE", _IOC_WRITE, 0x6302, 0x1c },
|
||||
{ "linux/chio.h", "CHIOGELEM", _IOC_WRITE, 0x6310, 0x6c },
|
||||
{ "linux/chio.h", "CHIOGPARAMS", _IOC_READ, 0x6306, 0x14 },
|
||||
@ -969,7 +983,11 @@
|
||||
{ "linux/gigaset_dev.h", "GIGASET_CONFIG", _IOC_READ|_IOC_WRITE, 0x4701, 0x04 },
|
||||
{ "linux/gigaset_dev.h", "GIGASET_REDIR", _IOC_READ|_IOC_WRITE, 0x4700, 0x04 },
|
||||
{ "linux/gigaset_dev.h", "GIGASET_VERSION", _IOC_READ|_IOC_WRITE, 0x4703, 0x10 },
|
||||
{ "linux/gpio.h", "GPIOHANDLE_GET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb408, 0x40 },
|
||||
{ "linux/gpio.h", "GPIOHANDLE_SET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb409, 0x40 },
|
||||
{ "linux/gpio.h", "GPIO_GET_CHIPINFO_IOCTL", _IOC_READ, 0xb401, 0x44 },
|
||||
{ "linux/gpio.h", "GPIO_GET_LINEEVENT_IOCTL", _IOC_READ|_IOC_WRITE, 0xb404, 0x30 },
|
||||
{ "linux/gpio.h", "GPIO_GET_LINEHANDLE_IOCTL", _IOC_READ|_IOC_WRITE, 0xb403, 0x16c },
|
||||
{ "linux/gpio.h", "GPIO_GET_LINEINFO_IOCTL", _IOC_READ|_IOC_WRITE, 0xb402, 0x48 },
|
||||
{ "linux/gsmmux.h", "GSMIOC_DISABLE_NET", _IOC_NONE, 0x4703, 0x00 },
|
||||
{ "linux/gsmmux.h", "GSMIOC_ENABLE_NET", _IOC_WRITE, 0x4702, 0x34 },
|
||||
@ -1418,30 +1436,14 @@
|
||||
{ "linux/lightnvm.h", "NVM_INFO", _IOC_READ|_IOC_WRITE, 0x4c20, 0x1000 },
|
||||
{ "linux/lirc.h", "LIRC_GET_FEATURES", _IOC_READ, 0x6900, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_LENGTH", _IOC_READ, 0x690f, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MAX_FILTER_PULSE", _IOC_READ, 0x690b, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MAX_FILTER_SPACE", _IOC_READ, 0x690d, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MAX_TIMEOUT", _IOC_READ, 0x6909, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MIN_FILTER_PULSE", _IOC_READ, 0x690a, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MIN_FILTER_SPACE", _IOC_READ, 0x690c, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_MIN_TIMEOUT", _IOC_READ, 0x6908, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_CARRIER", _IOC_READ, 0x6904, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_DUTY_CYCLE", _IOC_READ, 0x6906, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_MODE", _IOC_READ, 0x6902, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_REC_RESOLUTION", _IOC_READ, 0x6907, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_SEND_CARRIER", _IOC_READ, 0x6903, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_SEND_DUTY_CYCLE", _IOC_READ, 0x6905, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_GET_SEND_MODE", _IOC_READ, 0x6901, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_NOTIFY_DECODE", _IOC_NONE, 0x6920, 0x00 },
|
||||
{ "linux/lirc.h", "LIRC_SETUP_END", _IOC_NONE, 0x6922, 0x00 },
|
||||
{ "linux/lirc.h", "LIRC_SETUP_START", _IOC_NONE, 0x6921, 0x00 },
|
||||
{ "linux/lirc.h", "LIRC_SET_MEASURE_CARRIER_MODE", _IOC_WRITE, 0x691d, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_CARRIER", _IOC_WRITE, 0x6914, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_CARRIER_RANGE", _IOC_WRITE, 0x691f, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_DUTY_CYCLE", _IOC_WRITE, 0x6916, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_DUTY_CYCLE_RANGE", _IOC_WRITE, 0x691e, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_FILTER", _IOC_WRITE, 0x691c, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_FILTER_PULSE", _IOC_WRITE, 0x691a, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_FILTER_SPACE", _IOC_WRITE, 0x691b, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_MODE", _IOC_WRITE, 0x6912, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_TIMEOUT", _IOC_WRITE, 0x6918, 0x04 },
|
||||
{ "linux/lirc.h", "LIRC_SET_REC_TIMEOUT_REPORTS", _IOC_WRITE, 0x6919, 0x04 },
|
||||
@ -1553,19 +1555,19 @@
|
||||
{ "linux/ndctl.h", "ND_IOCTL_SMART", _IOC_READ|_IOC_WRITE, 0x4e01, 0x84 },
|
||||
{ "linux/ndctl.h", "ND_IOCTL_SMART_THRESHOLD", _IOC_READ|_IOC_WRITE, 0x4e02, 0x0c },
|
||||
{ "linux/ndctl.h", "ND_IOCTL_VENDOR", _IOC_READ|_IOC_WRITE, 0x4e09, 0x08 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_CHANGE_CPMODE", _IOC_WRITE, 0x6e80, 0x10 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_CLEAN_SEGMENTS", _IOC_WRITE, 0x6e88, 0x78 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_DELETE_CHECKPOINT", _IOC_WRITE, 0x6e81, 0x08 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_BDESCS", _IOC_READ|_IOC_WRITE, 0x6e87, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_CPINFO", _IOC_READ, 0x6e82, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_CPSTAT", _IOC_READ, 0x6e83, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_SUINFO", _IOC_READ, 0x6e84, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_SUSTAT", _IOC_READ, 0x6e85, 0x30 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_GET_VINFO", _IOC_READ|_IOC_WRITE, 0x6e86, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_RESIZE", _IOC_WRITE, 0x6e8b, 0x08 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_SET_ALLOC_RANGE", _IOC_WRITE, 0x6e8c, 0x10 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_SET_SUINFO", _IOC_WRITE, 0x6e8d, 0x18 },
|
||||
{ "linux/nilfs2_fs.h", "NILFS_IOCTL_SYNC", _IOC_READ, 0x6e8a, 0x08 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_CHANGE_CPMODE", _IOC_WRITE, 0x6e80, 0x10 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_CLEAN_SEGMENTS", _IOC_WRITE, 0x6e88, 0x78 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_DELETE_CHECKPOINT", _IOC_WRITE, 0x6e81, 0x08 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_BDESCS", _IOC_READ|_IOC_WRITE, 0x6e87, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_CPINFO", _IOC_READ, 0x6e82, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_CPSTAT", _IOC_READ, 0x6e83, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_SUINFO", _IOC_READ, 0x6e84, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_SUSTAT", _IOC_READ, 0x6e85, 0x30 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_GET_VINFO", _IOC_READ|_IOC_WRITE, 0x6e86, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_RESIZE", _IOC_WRITE, 0x6e8b, 0x08 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_SET_ALLOC_RANGE", _IOC_WRITE, 0x6e8c, 0x10 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_SET_SUINFO", _IOC_WRITE, 0x6e8d, 0x18 },
|
||||
{ "linux/nilfs2_api.h", "NILFS_IOCTL_SYNC", _IOC_READ, 0x6e8a, 0x08 },
|
||||
{ "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 },
|
||||
{ "linux/nvme_ioctl.h", "NVME_IOCTL_ID", _IOC_NONE, 0x4e40, 0x00 },
|
||||
{ "linux/nvme_ioctl.h", "NVME_IOCTL_IO_CMD", _IOC_READ|_IOC_WRITE, 0x4e43, 0x48 },
|
||||
@ -1739,6 +1741,17 @@
|
||||
{ "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 },
|
||||
{ "linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", _IOC_WRITE, 0xcd01, 0x04 },
|
||||
{ "linux/rfkill.h", "RFKILL_IOCTL_NOINPUT", _IOC_NONE, 0x5201, 0x00 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_ACCEPT", _IOC_READ|_IOC_WRITE, 0x6307, 0x08 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_BIND", _IOC_WRITE, 0x6305, 0x08 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_CLOSE", _IOC_WRITE, 0x6304, 0x02 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_CONNECT", _IOC_WRITE, 0x6308, 0x08 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_CREATE", _IOC_READ|_IOC_WRITE, 0x6303, 0x02 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_LISTEN", _IOC_WRITE, 0x6306, 0x02 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_RECEIVE", _IOC_READ|_IOC_WRITE, 0x630a, 0x10 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_CHAN_SEND", _IOC_WRITE, 0x6309, 0x10 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_EP_GET_LIST", _IOC_READ|_IOC_WRITE, 0x6302, 0x04 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_EP_GET_LIST_SIZE", _IOC_READ|_IOC_WRITE, 0x6301, 0x04 },
|
||||
{ "linux/rio_cm_cdev.h", "RIO_CM_MPORT_GET_LIST", _IOC_READ|_IOC_WRITE, 0x630b, 0x04 },
|
||||
{ "linux/rio_mport_cdev.h", "RIO_ALLOC_DMA", _IOC_READ|_IOC_WRITE, 0x6d13, 0x18 },
|
||||
{ "linux/rio_mport_cdev.h", "RIO_DEV_ADD", _IOC_WRITE, 0x6d17, 0x20 },
|
||||
{ "linux/rio_mport_cdev.h", "RIO_DEV_DEL", _IOC_WRITE, 0x6d18, 0x20 },
|
||||
@ -2244,6 +2257,8 @@
|
||||
{ "linux/vhost.h", "VHOST_SET_VRING_ERR", _IOC_WRITE, 0xaf22, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_SET_VRING_KICK", _IOC_WRITE, 0xaf20, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_SET_VRING_NUM", _IOC_WRITE, 0xaf10, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_VSOCK_SET_GUEST_CID", _IOC_WRITE, 0xaf60, 0x08 },
|
||||
{ "linux/vhost.h", "VHOST_VSOCK_SET_RUNNING", _IOC_WRITE, 0xaf61, 0x04 },
|
||||
{ "linux/videodev2.h", "VIDIOC_CREATE_BUFS", _IOC_READ|_IOC_WRITE, 0x565c, 0xf8 },
|
||||
{ "linux/videodev2.h", "VIDIOC_CROPCAP", _IOC_READ|_IOC_WRITE, 0x563a, 0x2c },
|
||||
{ "linux/videodev2.h", "VIDIOC_DBG_G_CHIP_INFO", _IOC_READ|_IOC_WRITE, 0x5666, 0xc8 },
|
||||
@ -2348,7 +2363,6 @@
|
||||
{ "linux/vmw_vmci_defs.h", "IOCTL_VMCI_SOCKETS_VERSION", _IOC_NONE, 0x07b4, 0x00 },
|
||||
{ "linux/vmw_vmci_defs.h", "IOCTL_VMCI_VERSION", _IOC_NONE, 0x079f, 0x00 },
|
||||
{ "linux/vmw_vmci_defs.h", "IOCTL_VMCI_VERSION2", _IOC_NONE, 0x07a7, 0x00 },
|
||||
{ "linux/vsp1.h", "VIDIOC_VSP1_LUT_CONFIG", _IOC_READ|_IOC_WRITE, 0x56c1, 0x400 },
|
||||
{ "linux/vt.h", "VT_ACTIVATE", 0, 0x5606, 0 },
|
||||
{ "linux/vt.h", "VT_DISALLOCATE", 0, 0x5608, 0 },
|
||||
{ "linux/vt.h", "VT_GETHIFONTMASK", 0, 0x560D, 0 },
|
||||
@ -2365,6 +2379,7 @@
|
||||
{ "linux/vt.h", "VT_UNLOCKSWITCH", 0, 0x560C, 0 },
|
||||
{ "linux/vt.h", "VT_WAITACTIVE", 0, 0x5607, 0 },
|
||||
{ "linux/vt.h", "VT_WAITEVENT", 0, 0x560E, 0 },
|
||||
{ "linux/vtpm_proxy.h", "VTPM_PROXY_IOC_NEW_DEV", _IOC_READ|_IOC_WRITE, 0xa100, 0x14 },
|
||||
{ "linux/watchdog.h", "WDIOC_GETBOOTSTATUS", _IOC_READ, 0x5702, 0x04 },
|
||||
{ "linux/watchdog.h", "WDIOC_GETPRETIMEOUT", _IOC_READ, 0x5709, 0x04 },
|
||||
{ "linux/watchdog.h", "WDIOC_GETSTATUS", _IOC_READ, 0x5701, 0x04 },
|
||||
@ -2771,8 +2786,6 @@
|
||||
{ "staging/android/ion_test.h", "ION_IOC_TEST_DMA_MAPPING", _IOC_WRITE, 0x49f1, 0x20 },
|
||||
{ "staging/android/ion_test.h", "ION_IOC_TEST_KERNEL_MAPPING", _IOC_WRITE, 0x49f2, 0x20 },
|
||||
{ "staging/android/ion_test.h", "ION_IOC_TEST_SET_FD", _IOC_NONE, 0x49f0, 0x00 },
|
||||
{ "staging/android/sw_sync.h", "SW_SYNC_IOC_CREATE_FENCE", _IOC_READ|_IOC_WRITE, 0x5700, 0x28 },
|
||||
{ "staging/android/sw_sync.h", "SW_SYNC_IOC_INC", _IOC_WRITE, 0x5701, 0x04 },
|
||||
{ "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 },
|
||||
{ "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 },
|
||||
{ "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 },
|
||||
@ -2813,6 +2826,7 @@
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_BIND_VIRQ", _IOC_NONE, 0x4500, 0x04 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_NOTIFY", _IOC_NONE, 0x4504, 0x04 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_RESET", _IOC_NONE, 0x4505, 0x00 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_RESTRICT_DOMID", _IOC_NONE, 0x4506, 0x02 },
|
||||
{ "xen/evtchn.h", "IOCTL_EVTCHN_UNBIND", _IOC_NONE, 0x4503, 0x04 },
|
||||
{ "xen/gntdev.h", "IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR", _IOC_NONE, 0x4702, 0x18 },
|
||||
{ "xen/gntdev.h", "IOCTL_GNTDEV_GRANT_COPY", _IOC_NONE, 0x4708, 0x08 },
|
||||
|
@ -204,8 +204,8 @@
|
||||
[203] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
|
||||
[204] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[205] = { 1, 0, SEN(printargs), "64:set_thread_area" },
|
||||
[206] = { 2, 0, SEN(printargs), "64:io_setup" },
|
||||
[207] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[206] = { 2, TM, SEN(printargs), "64:io_setup" },
|
||||
[207] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[208] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[209] = { 3, 0, SEN(printargs), "64:io_submit" },
|
||||
[210] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
@ -219,7 +219,7 @@
|
||||
[218] = { 1, 0, SEN(set_tid_address), "set_tid_address" },
|
||||
[219] = { 0, 0, SEN(restart_syscall), "restart_syscall" },
|
||||
[220] = { 4, TI, SEN(semtimedop), "semtimedop" },
|
||||
[221] = { 4, TD, SEN(fadvise64_64), "fadvise64" },
|
||||
[221] = { 4, TD, SEN(fadvise64), "fadvise64" },
|
||||
[222] = { 3, 0, SEN(printargs), "64:timer_create" },
|
||||
[223] = { 4, 0, SEN(timer_settime), "timer_settime" },
|
||||
[224] = { 2, 0, SEN(timer_gettime), "timer_gettime" },
|
||||
@ -363,6 +363,6 @@
|
||||
[540] = { 6, 0, SEN(process_vm_writev), "process_vm_writev" },
|
||||
[541] = { 5, TN, SEN(setsockopt), "setsockopt" },
|
||||
[542] = { 5, TN, SEN(getsockopt), "getsockopt" },
|
||||
[543] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[543] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[544] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[545] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat", },
|
||||
|
39
linux/x86_64/asm_stat.h
Normal file
39
linux/x86_64/asm_stat.h
Normal file
@ -0,0 +1,39 @@
|
||||
#ifndef STRACE_X86_64_ASM_STAT_H
|
||||
#define STRACE_X86_64_ASM_STAT_H
|
||||
|
||||
# if defined __x86_64__ && defined __ILP32__
|
||||
# define stat redirect_kernel_stat
|
||||
# endif
|
||||
|
||||
# include "linux/asm_stat.h"
|
||||
|
||||
# if defined __x86_64__ && defined __ILP32__
|
||||
# undef stat
|
||||
/*
|
||||
* This is a replacement for x32 <asm/stat.h> which
|
||||
* appears to be wrong in older kernel headers.
|
||||
*/
|
||||
struct stat {
|
||||
kernel_ulong_t st_dev;
|
||||
kernel_ulong_t st_ino;
|
||||
kernel_ulong_t st_nlink;
|
||||
unsigned int st_mode;
|
||||
unsigned int st_uid;
|
||||
unsigned int st_gid;
|
||||
unsigned int pad0__;
|
||||
kernel_ulong_t st_rdev;
|
||||
kernel_long_t st_size;
|
||||
kernel_long_t st_blksize;
|
||||
kernel_long_t st_blocks;
|
||||
kernel_ulong_t st_atime;
|
||||
kernel_ulong_t st_atime_nsec;
|
||||
kernel_ulong_t st_mtime;
|
||||
kernel_ulong_t st_mtime_nsec;
|
||||
kernel_ulong_t st_ctime;
|
||||
kernel_ulong_t st_ctime_nsec;
|
||||
kernel_long_t pad1__[3];
|
||||
};
|
||||
|
||||
# endif /* __x86_64__ && __ILP32__ */
|
||||
|
||||
#endif /* !STRACE_X86_64_ASM_STAT_H */
|
@ -204,8 +204,8 @@
|
||||
[203] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
|
||||
[204] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
|
||||
[205] = { 1, 0, SEN(set_thread_area), "set_thread_area" },
|
||||
[206] = { 2, 0, SEN(io_setup), "io_setup" },
|
||||
[207] = { 1, 0, SEN(io_destroy), "io_destroy" },
|
||||
[206] = { 2, TM, SEN(io_setup), "io_setup" },
|
||||
[207] = { 1, TM, SEN(io_destroy), "io_destroy" },
|
||||
[208] = { 5, 0, SEN(io_getevents), "io_getevents" },
|
||||
[209] = { 3, 0, SEN(io_submit), "io_submit" },
|
||||
[210] = { 3, 0, SEN(io_cancel), "io_cancel" },
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user