• John Baldwin's avatar
    Add support to libsysdecode for decoding system call names. · a5f14abf
    John Baldwin authored
    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