7270de551c
ARM in fact _is_ one personality. We had two personalities for it because it has a handful of syscalls with huge scnos (0x000f00xx). Extending syscall table to have [0x000f0005] index is of course not a good idea. Someone decided to handle that by having a separate personality just for these syscalls. But multi-personality arch does a bit more work in other parts. This patch is another alternative: "move" 0x000f00nn syscalls down to the entries just above last ordinary syscall, by manipulating scno if it falls into the 0x000f00xx range. In order to not worsen genuine undefined scnos' printing, the code remaps scno back to actual value before printing "syscall_NNN" string. * defs.h: Remove multi-reprsonality defines from ARM. * syscall.c (shuffle_scno): New function. (undefined_scno_name): New function. (get_scno): [ARM] Replace personality setting with scno shuffling. (trace_syscall_entering): Print unknown syscall name using undefined_scno_name(). (trace_syscall_exiting): Likewise. * linux/arm/syscallent.h: Add ARM specific syscalls at the end. * linux/arm/errnoent1.h: Deleted. * linux/arm/ioctlent1.h: Deleted. * linux/arm/signalent1.h: Deleted. * linux/arm/syscallent1.h: Deleted. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> |
||
---|---|---|
debian | ||
linux | ||
m4 | ||
qemu_multiarch_testing | ||
test | ||
tests | ||
.gitignore | ||
.mailmap | ||
AUTHORS | ||
bjm.c | ||
block.c | ||
ChangeLog-CVS | ||
configure.ac | ||
COPYRIGHT | ||
count.c | ||
CREDITS.in | ||
defs.h | ||
desc.c | ||
errnoent.sh | ||
file.c | ||
git-set-file-times | ||
gitlog-to-changelog | ||
HACKING-scripts | ||
INSTALL | ||
io.c | ||
ioctl.c | ||
ioctlsort.c | ||
ipc.c | ||
loop.c | ||
make-dist | ||
Makefile.am | ||
mem.c | ||
mtd.c | ||
net.c | ||
NEWS | ||
pathtrace.c | ||
process.c | ||
quota.c | ||
README | ||
README-hacking | ||
README-linux | ||
README-linux-ptrace | ||
resource.c | ||
scsi.c | ||
signal.c | ||
signalent.sh | ||
sock.c | ||
strace-graph | ||
strace-log-merge | ||
strace.1 | ||
strace.c | ||
strace.spec | ||
stream.c | ||
syscall.c | ||
syscallent.sh | ||
system.c | ||
term.c | ||
time.c | ||
util.c | ||
vsprintf.c | ||
xlate.el |
This is strace, a system call tracer for Linux. strace is released under a Berkeley-style license at the request of Paul Kranenburg; see the file COPYRIGHT for details. See the file CREDITS for a list of authors and other contributors. See the file INSTALL for compilation and installation instructions. See the file NEWS for information on what has changed in recent versions. You can get the latest version of strace from its homepage at http://sourceforge.net/projects/strace/ . Please send bug reports and enhancements to the strace mailinglist at strace-devel@lists.sourceforge.net.