summaryrefslogtreecommitdiffstats
path: root/usr.bin/truss/powerpc64-freebsd32.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2016-01-26 19:07:09 +0000
committerjhb <jhb@FreeBSD.org>2016-01-26 19:07:09 +0000
commitcd4a0ee266068abaf08833b8d76b0ad8b0cea721 (patch)
tree817dc34ebf9af56aa355e84eee2cf55753669285 /usr.bin/truss/powerpc64-freebsd32.c
parent1def741dc225d64b4a5b9f6ef7a3fb0b865294f5 (diff)
downloadFreeBSD-src-cd4a0ee266068abaf08833b8d76b0ad8b0cea721.zip
FreeBSD-src-cd4a0ee266068abaf08833b8d76b0ad8b0cea721.tar.gz
Add support to libsysdecode for decoding system call names.
A new sysdecode_syscallname() function accepts a system call code and returns a string of the corresponding name (or NULL if the code is unknown). To support different process ABIs, the new function accepts a value from a new sysdecode_abi enum as its first argument to select the ABI in use. Current ABIs supported include FREEBSD (native binaries), FREEBSD32, LINUX, LINUX32, and CLOUDABI64. Note that not all ABIs are supported by all platforms. In general, a given ABI is only supported if a platform can execute binaries for that ABI. To simplify the implementation, libsysdecode's build reuses the existing pre-generated files from the kernel source tree rather than duplicating new copies of said files during the build. kdump(1) and truss(1) now use these functions to map system call identifiers to names. For kdump(1), a new 'syscallname()' function consolidates duplicated code from ktrsyscall() and ktrsyscallret(). The Linux ABI no longer requires custom handling for ktrsyscall() and linux_ktrsyscall() has been removed as a result. Reviewed by: bdrewery Differential Revision: https://reviews.freebsd.org/D4823
Diffstat (limited to 'usr.bin/truss/powerpc64-freebsd32.c')
-rw-r--r--usr.bin/truss/powerpc64-freebsd32.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/usr.bin/truss/powerpc64-freebsd32.c b/usr.bin/truss/powerpc64-freebsd32.c
index fc0ffb8..ee37ead 100644
--- a/usr.bin/truss/powerpc64-freebsd32.c
+++ b/usr.bin/truss/powerpc64-freebsd32.c
@@ -37,11 +37,10 @@ __FBSDID("$FreeBSD$");
#include <machine/frame.h>
#include <stdio.h>
+#include <sysdecode.h>
#include "truss.h"
-#include "freebsd32_syscalls.h"
-
static int
powerpc64_freebsd32_fetch_args(struct trussinfo *trussinfo, u_int narg)
{
@@ -118,8 +117,7 @@ powerpc64_freebsd32_fetch_retval(struct trussinfo *trussinfo, long *retval, int
static struct procabi powerpc64_freebsd32 = {
"FreeBSD ELF32",
- syscallnames,
- nitems(syscallnames),
+ FREEBSD32,
powerpc64_freebsd32_fetch_args,
powerpc64_freebsd32_fetch_retval
};
OpenPOWER on IntegriCloud