Dmitry V. Levin [Wed, 2 May 2018 15:23:46 +0000 (15:23 +0000)]
xlat: merge fcntl64cmds into fcntlcmds
Since we don't have to workaround old F_[GS]ETOWN_EX == F_[SG]ETLK64
kernel bug any longer, there is a room for cleanup.
* xlat/fcntlcmds.in (F_GETLK64, F_SETLK64, F_SETLKW64): Add from
xlat/fcntl64cmds.in.
* xlat/fcntl64cmds.in: Remove.
* fcntl.c: Do not include "xlat/fcntl64cmds.h".
(SYS_FUNC(fcntl), SYS_FUNC(fcntl64)): Do not use fcntl64cmds, call
printxval instead of printxvals.
Zhibin Li [Wed, 2 May 2018 15:16:57 +0000 (23:16 +0800)]
tests: check decoding of F_GETOWN_EX and F_SETOWN_EX fcntl commands
* tests/fcntl.c (TEST_F_OWNER_EX): New macro.
[TEST_F_OWNER_EX]: Include "f_owner_ex.h".
[TEST_F_OWNER_EX] (test_f_owner_ex_type_pid,
test_f_owner_ex_umove_or_printaddr, test_f_owner_ex): New functions.
(main) [TEST_F_OWNER_EX]: Use test_f_owner_ex.
Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
Dmitry V. Levin [Wed, 2 May 2018 15:23:46 +0000 (15:23 +0000)]
Introduce f_owner_ex.h
Some headers define struct f_owner_ex, some struct __kernel_f_owner_ex,
we have to support both variants.
* configure.ac (AC_CHECK_TYPES): Check for "struct f_owner_ex"
and "struct __kernel_f_owner_ex" in <linux/fcntl.h>.
* f_owner_ex.h: New file.
* Makefile.am (strace_SOURCES): Add it.
Masatake YAMATO [Wed, 2 May 2018 08:11:07 +0000 (17:11 +0900)]
tests/ioctl_kvm_run.c: handle cpuid at the end of vcpu dentry
Since Linux 4.16, kernel appends the cpuid as suffix to the entry
for a kvm vcpu in /proc/$pid/fd like:
anon_inode:kvm-vcpu:0
That was
anon_inode:kvm-vcpu
This kernel change causes the test case failure on newer kernels.
Update the test to deal with the new name as well as the old one.
* tests/ioctl_kvm_run.c: Include unistd.h for using readlink(2).
(vcpu_dev_should_have_cpuid): New function for detecting whether
a proc entry for given fd has the cpuid suffix or not.
(main): Trim vcpu_dev to remove the cpuid suffix if needed.
(vcpu_dev): Remove const modifier.
Dmitry V. Levin [Sun, 29 Apr 2018 21:59:55 +0000 (21:59 +0000)]
xlat: check that system definitions match fallback definitions
For each constant that is accompanied by a fallback definition,
generate a sanity check that the definition provided by system headers
matches the fallback definition.
* gcc_compat.h (DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE,
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE): New macros.
* xlat/gen.sh (cond_def): Generate a code that checks the system
definition against the default.
(gen_header): Generate a code that includes "gcc_compat.h" and
"static_assert.h".
Co-Authored-by: Eugene Syromyatnikov <evgsyr@gmail.com>
Dmitry V. Levin [Sun, 29 Apr 2018 21:59:55 +0000 (21:59 +0000)]
xlat: override values of F_SETOWN_EX and F_GETOWN_EX constants
Linux kernel commit v2.6.32-rc7~23 has changed values of F_SETOWN_EX
and F_GETOWN_EX constants introduced by commit v2.6.32-rc1~96 to fix
the conflict with F_GETLK64 and F_SETLK64 constants.
Looks like the best way to handle this situation is to pretend that
old values of F_SETOWN_EX and F_GETOWN_EX didn't exist.
* xlat/fcntlcmds.in (F_SETOWN_EX, F_GETOWN_EX): Undefine.
Dmitry V. Levin [Sun, 29 Apr 2018 21:59:55 +0000 (21:59 +0000)]
xlat: fix F_* fallback definitions on alpha, hppa, mips, and sparc
* xlat/fcntlcmds.in (F_GETLK, F_SETLK, F_SETLKW, F_SETOWN, F_GETOWN,
F_SETSIG, F_GETSIG) [alpha || hppa || mips || sparc]: Fix definitions.
* xlat/fcntl64cmds.in (F_GETLK64, F_SETLK64, F_SETLKW64) [hppa || mips]:
Likewise.
Dmitry V. Levin [Sun, 29 Apr 2018 21:59:55 +0000 (21:59 +0000)]
xlat: fix SI_* fallback definitions on mips
* xlat/siginfo_codes.in [mips] (SI_ASYNCIO, SI_TIMER, SI_MESGQ): Define
to -2, -3, and -4, respectively.
Dmitry V. Levin [Sun, 29 Apr 2018 21:59:55 +0000 (21:59 +0000)]
xlat: override values of KEY_RFKILL and KEY_BRIGHTNESS_MIN constants
KEY_RFKILL and KEY_NUMERIC_A constants were introduced by Linux kernel
commits v2.6.33~17^2~2 and v4.1-rc1~150^2~1^10~6, respectively.
Apparently, RHEL6 introduced an alternative KEY_RFKILL constant
with the same value as upstream KEY_NUMERIC_A.
KEY_BRIGHTNESS_MIN and KEY_BRIGHTNESS_MAX constants were introduced
by Linux kernel commit v3.16-rc1~30^2~6^2~1^2~7.
Apparently, RHEL7 introduced an alternative KEY_BRIGHTNESS_MIN constant
with the same value as upstream KEY_BRIGHTNESS_MAX.
Downstream vendors are *not* allowed to do this.
Ignore the system value of KEY_RFKILL and KEY_BRIGHTNESS_MIN.
* xlat/evdev_keycode.in (KEY_RFKILL, KEY_BRIGHTNESS_MIN): Undefine.
Dmitry V. Levin [Sun, 29 Apr 2018 21:59:55 +0000 (21:59 +0000)]
xlat: override the value of KEY_DATA constant
Linux kernel commit v4.9-rc8~12^2 has changed the value of KEY_DATA
constant introduced by commit v4.7-rc6~32^2~6^2 because the old value
was already used by KEY_FASTREVERSE.
Looks like the best way to handle this situation is to pretend that
the old value of KEY_DATA didn't exist.
* xlat/evdev_keycode.in (KEY_DATA): Undefine.
Dmitry V. Levin [Sun, 29 Apr 2018 21:59:55 +0000 (21:59 +0000)]
xlat: override the value of AUDIT_FEATURE_CHANGE constant
Linux kernel commit v3.15-rc1~18^2~1 has changed the value
of AUDIT_FEATURE_CHANGE constant introduced by commit v3.13-rc1~19^2~20
which is of course an ABI breakage that affected 3.13 and 3.14 kernel
releases as well as their LTS derivatives.
Linux kernel commit v3.15-rc1~18^2~1 also claims that the old value
of AUDIT_FEATURE_CHANGE was ignored by userspace because of the
established convention how netlink messages for the audit system
are divided into blocks.
Looks like the best way to handle this situation is to pretend that
the old value of AUDIT_FEATURE_CHANGE didn't exist.
* xlat/nl_audit_types.in (AUDIT_FEATURE_CHANGE): Undefine.
Co-Authored-by: Eugene Syromyatnikov <evgsyr@gmail.com>
Dmitry V. Levin [Sun, 29 Apr 2018 21:59:55 +0000 (21:59 +0000)]
xlat: fix MCL_* fallback definitions on alpha, ppc, ppc64, and sparc
On these architectures, MCL_* constants are different.
* xlat/socketlayers.in [__alpha__ || __powerpc__ || __powerpc64__
|| __sparc__] (MCL_CURRENT, MCL_FUTURE, MCL_ONFAULT): Define to 0x2000,
0x4000, and 0x8000, respectively.
Eugene Syromyatnikov [Fri, 20 Apr 2018 13:19:18 +0000 (15:19 +0200)]
xlat: fix SOL_SOCKET fallback definition on alpha, hppa, mips, and sparc
On these architectures, SOL_SOCKET is 0xffff and not 1.
* xlat/socketlayers.in [__alpha__ || __hppa__ || __mips__ || __sparc__]
(SOL_SOCKET): Define to 0xffff.
Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
Eugene Syromyatnikov [Wed, 4 Apr 2018 21:25:19 +0000 (23:25 +0200)]
tests: add more mount checks
* tests/gen_tests.in (mount, mount-Xabbrev, mount-Xraw, mount-Xverbose):
Add -a33 option.
* tests/mount.c: Check printing of flags and pointers.
Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
Dmitry V. Levin [Sat, 28 Apr 2018 20:48:52 +0000 (20:48 +0000)]
tests: use sprintrc in mount test
* tests/mount.c (main): Use sprintrc.
Eugene Syromyatnikov [Wed, 4 Apr 2018 21:03:26 +0000 (23:03 +0200)]
tests: add mount variants with different xlat verbosity levels
* tests/mount-Xabbrev.c: New file.
* tests/mount-Xraw.c: Likewise.
* tests/mount-Xverbose.c: Likewise.
* tests/mount.c: Add handling of XLAT_RAW and XLAT_VERBOSE macros.
* tests/pure_executables.list: Add mount-Xabbrev, mount-Xraw,
and mount-Xverbose.
* tests/.gitignore: Likewise.
* tests/gen_tests.in (mount-Xabbrev, mount-Xraw, mount-Xverbose): New
tests.
Eugene Syromyatnikov [Wed, 4 Apr 2018 16:44:44 +0000 (18:44 +0200)]
tests: add old_mmap variants with different xlat verbosity levels
* tests/old_mmap-Xabbrev.c: New file.
* tests/old_mmap-Xraw.c: Likewise.
* tests/old_mmap-Xverbose.c: Likewise.
* tests/old_mmap.c (main): Add handling of XLAT_RAW and XLAT_VERBOSE
macros.
* tests/pure_executables.list: Add old_mmap-Xabbrev, old_mmap-Xraw,
and old_mmap-Xverbose.
* tests/.gitignore: Likewise.
* tests/gen_tests.in (old_mmap-Xabbrev, old_mmap-Xraw,
old_mmap-Xverbose): New tests.
Eugene Syromyatnikov [Wed, 4 Apr 2018 15:38:53 +0000 (17:38 +0200)]
tests: add mmap/mmap64 variants different xlat verbosity levels
* tests/tests.h [!XLAT_RAW] (XLAT_RAW): Define.
[!XLAT_VERBOSE] (XLAT_VERBOSE): Likewise.
* tests/mmap-Xabbrev.c: New file.
* tests/mmap-Xraw.c: Likewise.
* tests/mmap-Xverbose.c: Likewise.
* tests/mmap64-Xabbrev.c: Likewise.
* tests/mmap64-Xraw.c: Likewise.
* tests/mmap64-Xverbose.c: Likewise.
* tests/mmap.c (main): Add handling of XLAT_RAW and XLAT_VERBOSE macros.
* tests/mmap.test: Add handling of optional test arguments that set
alignment and xlat verbosity options.
* tests/Makefile.am (mmap64_Xabbrev_CPPFLAGS, mmap64_Xraw_CPPFLAGS,
mmap64_Xverbose_CPPFLAGS): New variables, analogous to mmap64_CPPFLAGS.
* tests/pure_executables.list: Add mmap-Xabbrev, mmap-Xraw,
mmap-Xverbose, mmap64-Xabbrev, mmap64-Xraw, and mmap64-Xverbose.
* tests/.gitignore: Likewise.
* tests/gen_tests.in (mmap-Xabbrev, mmap-Xraw, mmap-Xverbose,
mmap64-Xabbrev, mmap64-Xraw, mmap64-Xverbose): New tests.
Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
Dmitry V. Levin [Fri, 27 Apr 2018 07:19:52 +0000 (07:19 +0000)]
Fix fallback definition of MSG_ZEROCOPY
* xlat/msg_flags.in (MSG_ZEROCOPY): Set fallback definition to 0x4000000.
Fixes: v4.21~316 ("Update MSG_* constants")
Dmitry V. Levin [Fri, 27 Apr 2018 07:19:52 +0000 (07:19 +0000)]
build: try to use _Static_assert if static_assert is not available
* configure.ac: Check for _Static_assert if static_assert
is not available.
* static_assert.h [!HAVE_STATIC_ASSERT && HAVE__STATIC_ASSERT]
(static_assert): Define to _Static_assert.
Eugene Syromyatnikov [Wed, 4 Apr 2018 13:32:05 +0000 (15:32 +0200)]
printmode: add xlat style support to print_symbolic_mode_t
* printmode.c (print_symbolic_mode_t): Set ifmt to an empty string,
print raw and decoded values based on current xlat_verbosity setting.
Eugene Syromyatnikov [Mon, 2 Apr 2018 19:13:42 +0000 (21:13 +0200)]
evdev: remove XT_NORMAL
It is no longer used.
* evdev.c (enum xlat_type) <XT_NORMAL>: Remove.
(printxval_dispatch) <case XT_NORMAL>: Remove.
Eugene Syromyatnikov [Mon, 2 Apr 2018 19:09:15 +0000 (21:09 +0200)]
Switch to use of value-indexed xlats for evdev constants
* xlat/evdev_abs.in: Add "#value_indexed" directive.
* xlat/evdev_autorepeat.in: Likewise.
* xlat/evdev_ff_status.in: Likewise.
* xlat/evdev_keycode.in: Likewise.
* xlat/evdev_leds.in: Likewise.
* xlat/evdev_misc.in: Likewise.
* xlat/evdev_prop.in: Likewise.
* xlat/evdev_relative_axes.in: Likewise.
* xlat/evdev_snd.in: Likewise.
* xlat/evdev_switch.in: Likewise.
* xlat/evdev_sync.in: Likewise.
* xlat/evdev_ff_types.in: Add a comment about sorting.
* evdev.c (keycode_ioctl, keycode_V2_ioctl): Use printxval_index
instead of printxval.
(bit_ioctl): Use XT_SORTED for evdev_ff_types, use XT_INDEXED
for other xlats.
(evdev_read_ioctl): Use XT_INDEXED for all xlats.
* ioctl.c (evdev_decode_number): Use printxval_indexn instead of
printxval for evdev_abs.
Eugene Syromyatnikov [Mon, 2 Apr 2018 18:32:19 +0000 (20:32 +0200)]
evdev: support various types of xlats in decode_bitset
* evdev.c (enum xlat_type): New enumeration.
(printxval_dispatch): New function.
(decode_bitset_): Rename from decode_bitset, add decode_nr_size
and xt arguments, call printxval_dispatch instead of printxval.
(decode_bitset): Add a decode_bitset_ wrapper that derives
decode_nr_size from the ARRAY_SIZE of decode_nr.
(bit_ioctl, evdev_read_ioctl): Update decode_bitset calls.
Eugene Syromyatnikov [Mon, 2 Apr 2018 18:16:00 +0000 (20:16 +0200)]
Move xlat/evdev_abs.h inclusion from ioctl.c to evdev.c
Also introduce evdev_abs_size constant, which will be needed later.
* defs.h (evdev_abs_size): New declaration.
* ioctl.c: Move xlat/evdev_abs.h inclusion ...
* evdev.c: ... here.
(evdev_abs_size): New constant variable.
Eugene Syromyatnikov [Mon, 2 Apr 2018 18:01:56 +0000 (20:01 +0200)]
Add support for value-indexed xlats
There are quite a few xlats that start from 0 and not too sparse,
we can push the search time for them down to O(1).
* defs.h (printxval_indexn_ex): New declaration.
(printxval_indexn, printxval_index, printxval_index_ex): New macros.
* xlat.c (printxval_sized): Rename from printxval_searchn_ex,
add fn argument, call it instead of xlat_search.
(printxval_searchn_ex): Implement as a thin wrapper around
printxval_sized using xlat_search as a search function.
(xlat_idx): New function.
(printxval_indexn_ex): New function, a thin wrapper around
printxval_sized using xlat_idx as a search function.
* xlat/gen.sh: Add support for "#value_indexed" directive.
Eugene Syromyatnikov [Wed, 4 Apr 2018 13:52:36 +0000 (15:52 +0200)]
socketcall: use printxval_d for printing call argument
* socketcall.c (SYS_FUNC(socketcall)): Use printxval_d instead of manual
call argument decoding.
Eugene Syromyatnikov [Wed, 4 Apr 2018 13:51:36 +0000 (15:51 +0200)]
signal: use print_xlat_ex in print_sa_handler
* signal.c (print_sa_handler): Call print_xlat_ex instead of tprints
in order to respect current xlat style setting.
Eugene Syromyatnikov [Wed, 4 Apr 2018 13:42:00 +0000 (15:42 +0200)]
s390: use printxvals_ex for command printing in s390_runtime_instr
* s390.c (SYS_FUNC(s390_runtime_instr)): Replace manual command argument
decoding with a printxvals_ex call.
Eugene Syromyatnikov [Wed, 4 Apr 2018 13:36:29 +0000 (15:36 +0200)]
printsiginfo: use print_xlat_ex in print_si_code
In order to respect current xlat style setting.
* printsiginfo.c (print_si_code): Use print_xlat_ex instead of manual
string/value printing.
Eugene Syromyatnikov [Wed, 4 Apr 2018 12:54:06 +0000 (14:54 +0200)]
open: use print_xlat_ex for printing open modes
In order to respect xlat style setting.
* open.c (tprint_open_modes): Use print_xlat_ex instead of
tprint_open_modes.
Eugene Syromyatnikov [Wed, 4 Apr 2018 12:39:42 +0000 (14:39 +0200)]
netlink: use print_xlat_ex in decode_nlmsg_type_netfilter
In order to respect current xlat style setting.
* netlink.c (decode_nlmsg_type_netfilter): Use print_xlat_ex
instead of tprints.
Eugene Syromyatnikov [Wed, 4 Apr 2018 12:38:22 +0000 (14:38 +0200)]
net: use print_xlat_ex in tprint_sock_type
In order to respect current xlat style setting.
* next.c (tprint_sock_type): Use print_xlat_ex instead of tprints
for socket type printing.
Eugene Syromyatnikov [Wed, 4 Apr 2018 12:31:09 +0000 (14:31 +0200)]
keyctl: use printxval_d for printing keyring serial number
* keyctl.c (print_keyring_serial_number): Use printxval_d instead of
looking up and printing xlat value manually.
* xlat/key_spec.in: Add "#val_type int" so the xlat values have sign
bit propagated.
Eugene Syromyatnikov [Wed, 4 Apr 2018 12:28:34 +0000 (14:28 +0200)]
ipc: use printxval_u instead of manual xlat value printing
* ipc.c (SYS_FUNC(ipc)): Decode call argument using printxval_u.
Eugene Syromyatnikov [Wed, 4 Apr 2018 12:19:50 +0000 (14:19 +0200)]
ioprio: use sprintxval instead of xlookup and string/value printing
In order to respect current xlat style.
* ioprio.c (sprint_ioprio): Use sprintxval for producing string
representation of ioprio class, use the produced string representation
in resulting xsprintf.
Eugene Syromyatnikov [Wed, 4 Apr 2018 11:29:58 +0000 (13:29 +0200)]
xlat: handle NULL str in print_xlat_ex
It allows to use the following code pattern:
print_xlat_ex(val, xlookup(xlat, val), XLAT_STYLE_FMT_D);
* xlat.c (print_xlat_ex): Handle str being NULL: print val instead.
Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
Eugene Syromyatnikov [Thu, 26 Apr 2018 15:26:22 +0000 (17:26 +0200)]
strace.1.in: fix typo (Ronald -> Roland)
A very unfortunate one, though.
Eugene Syromyatnikov [Tue, 24 Apr 2018 15:19:19 +0000 (17:19 +0200)]
NEWS: mention that -X option addresses Debian bug #692915
Eugene Syromyatnikov [Mon, 2 Apr 2018 18:13:37 +0000 (20:13 +0200)]
ioctl: do not include linux/input.h
All the ABS_* and EV_* values are now available internally,
there's no need to include the header.
* ioctl.c [HAVE_LINUX_INPUT_H]: Do not include linux/input.h.
Eugene Syromyatnikov [Mon, 2 Apr 2018 18:09:02 +0000 (20:09 +0200)]
tests: add more evdev ioctl checks
tests/ioctl_evdev.c (TEST_NULL_ARG_EX): Rename from TEST_NULL_ARG, add
str argument, print it instead of #cmd.
(TEST_NULL_ARG): Implement as a TEST_NULL_ARG_EX wrapper.
(main): Add checks for EVIOCSABS and EVIOCGBIT ioctls.
Eugene Syromyatnikov [Fri, 30 Mar 2018 20:20:24 +0000 (22:20 +0200)]
evdev: decode EV_SW unconditionally
* evdev.c (bit_ioctl): Remove [EV_SW] check.
* tests/ioctl_evdev.c [!EV_SW] (EV_SW): Define.
(main): Remove [EV_SW] check.
Eugene Syromyatnikov [Mon, 2 Apr 2018 00:44:55 +0000 (02:44 +0200)]
xlat: provide fallback definitions for arch-independent evdev constants
* xlat/evdev_abs.in: Add constant values.
* xlat/evdev_autorepeat.in: Likewise.
* xlat/evdev_ev.in: Likewise.
* xlat/evdev_ff_status.in: Likewise.
* xlat/evdev_ff_types.in: Likewise.
* xlat/evdev_leds.in: Likewise.
* xlat/evdev_misc.in: Likewise.
* xlat/evdev_prop.in: Likewise.
* xlat/evdev_relative_axes.in: Likewise.
* xlat/evdev_snd.in: Likewise.
* xlat/evdev_switch.in: Likewise.
* xlat/evdev_sync.in: Likewise.
Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
Eugene Syromyatnikov [Fri, 30 Mar 2018 20:22:52 +0000 (22:22 +0200)]
xlat/evdev_switch.in: update
* xlat/evdev_switch.in (SW_RADIO): Remove, as it was renamed to
SW_RFKILL_ALL and marked as deprecated by Linux commit v2.6.26-rc5~32^2.
(SW_PEN_INSERTED): New constant, was added by Linux commit v4.7~11^2~7.
Eugene Syromyatnikov [Mon, 9 Apr 2018 08:19:01 +0000 (10:19 +0200)]
util.c: make "Out of memory" messages a bit more informative
Since these are emitted in multiple places and are not expected during
any normal operation, it makes sense to report the caller name.
* util.c (print_quoted_string_ex, print_quoted_string_ex, dumpiov_upto,
dumpstr): Replace error_msg with error_func_msg.
Eugene Syromyatnikov [Sat, 7 Apr 2018 00:45:09 +0000 (02:45 +0200)]
ci: reorder travis jobs
Run coverage check first as it is the longest one.
* .travis.yml (matrix): Reorder.
Eugene Syromyatnikov [Wed, 4 Apr 2018 21:24:23 +0000 (23:24 +0200)]
xlat: add MS_SUBMOUNT constant
* xlat/mount_flags.in (MS_SUBMOUNT): New constant, introduced
by Linux commit v4.11-rc1~82^2~7.
Eugene Syromyatnikov [Wed, 4 Apr 2018 12:12:08 +0000 (14:12 +0200)]
fcntl: replace combinations of xlookup and printxval with printxvals
After all, that's what printxvals for.
* fcntl.c (SYS_FUNC(fcntl), SYS_FUNC(fcntl64)): Use printxvals for
printing value with multiple xlat tables as constant sources.
Eugene Syromyatnikov [Wed, 4 Apr 2018 11:28:51 +0000 (13:28 +0200)]
Move xlat_verbose and xlat_format from xlat.c to defs.h
As it will be used elsewhere.
* xlat.c (xlat_verbose, xlat_format): Move...
* defs.h: ...here.
Eugene Syromyatnikov [Wed, 4 Apr 2018 13:56:52 +0000 (15:56 +0200)]
btrfs: use printxval_u for error types printing
* btrfs.c (MPERS_PRINTER_DECL(btrfs_ioctl)) <case
BTRFS_IOC_GET_DEV_STATS>: Use printxval_u for error type printing.
* tests/btrfs.c (btrfs_test_get_dev_stats_ioctl): Update expected output.
Eugene Syromyatnikov [Mon, 26 Mar 2018 04:45:36 +0000 (06:45 +0200)]
btrfs: print device IDs using PRINT_FIELD_DEV
* btrfs.c (btrfs_print_balance_args): Print devid field using
PRINT_FIELD_DEV.
(MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_DEV_INFO,
case BTRFS_IOC_GET_DEV_STATS, case BTRFS_IOC_SCRUB,
case BTRFS_IOC_SCRUB_PROGRESS>: Likewise.
(MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_DEV_REPLACE>: Print
start.srcdevid field using PRINT_FIELD_DEV.
* tests/btrfs.c: Update expected output.
Eugene Syromyatnikov [Sun, 25 Mar 2018 16:28:47 +0000 (18:28 +0200)]
btrfs: print cont_reading_from_srcdev_mode as xlat
* xlat/btrfs_cont_reading_from_srcdev_mode.in: New file.
* btrfs.c: Include "xlat/btrfs_cont_reading_from_srcdev_mode.h".
(MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_DEV_REPLACE>: Print
named values for the
struct btrfs_ioctl_dev_replace_args.start.cont_reading_from_srcdev_mode
field.
* tests/btrfs.c: Include "xlat/btrfs_cont_reading_from_srcdev_mode.h".
(btrfs_test_dev_replace_ioctl): Update expected output.
Eugene Syromyatnikov [Mon, 19 Mar 2018 04:49:05 +0000 (05:49 +0100)]
btrfs: use PRINT_FIELD_*
* btrfs.c (btrfs_print_balance_args, btrfs_print_balance,
btrfs_print_features, btrfs_print_qgroup_limit,
btrfs_print_data_container_header,
print_btrfs_data_container_logical_ino, btrfs_print_qgroup_inherit,
btrfs_print_tree_search, print_btrfs_ioctl_space_info, btrfs_ioctl):
Use PRINT_FIELD_* macros for printing structure fields.
Eugene Syromyatnikov [Mon, 19 Mar 2018 04:48:22 +0000 (05:48 +0100)]
btrfs: make BTRFS_IOC_GET_DEV_STATS error statistics output more structured
* btrfs.c (MPERS_PRINTER_DECL(btrfs_ioctl)) <case
BTRFS_IOC_GET_DEV_STATS>: Print array index in square brackets before
the value in order to avoid confusion.
* tests/btrfs.c (btrfs_test_get_dev_stats_ioctl): Update expected output.
Eugene Syromyatnikov [Mon, 19 Mar 2018 04:27:41 +0000 (05:27 +0100)]
ioctl: print ioctl number in accordance with xlat verbosity setting
* ioctl.c (SYS_FUNC(ioctl)): Print ioctl command name in accordance
with the current xlat_verbosity setting.
* tests/btrfs.c (sprint_xlat_): New function.
(ioc): New macro, a wrapper for sprint_xlat_.
Update expected output.
Eugene Syromyatnikov [Mon, 19 Mar 2018 04:24:16 +0000 (05:24 +0100)]
file_ioctl: make abbreviated output more structured
* file_ioctl.c (file_ioctl): Print fm_extents field name only in case
of non-abbreviated output.
* tests/btrfs.c (btrfs_test_ino_path_ioctls): Update expected output.
Eugene Syromyatnikov [Mon, 19 Mar 2018 04:22:42 +0000 (05:22 +0100)]
btrfs: fix printing of struct btrfs_ioctl_quota_ctl_args
For some reason, he decoder of BTRFS_IOC_QUOTA_CTL command didn't print
opening curly brace and field name, only the closing curly brace.
* btrfs.c (MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_QUOTA_CTL>:
Print "{cmd=".
* tests/btrfs.c (btrfs_test_quota_ctl_ioctl): Update expected output.
Fixes: v4.12~100 "ioctl: add decoding support for btrfs ioctls"
Eugene Syromyatnikov [Tue, 13 Mar 2018 22:47:37 +0000 (23:47 +0100)]
btrfs: consistently use PRINT_FIELD_U64
* btrfs.c (print_u64, print_member_u64, print_key_value_internal,
print_key_value): Remove.
(btrfs_print_balance_args): Use PRINT_FIELD_U64 instead of
print_member_u64.
(btrfs_print_tree_search): Use PRINT_FIELD_U64 instead of
print_key_value.
(MPERS_PRINTER_DECL(btrfs_ioctl)): Use PRINT_FIELD_U64 instead of manual
UINT64_MAX printing.
* tests/btrfs.c: Update expected output in order to account fields that
are now affected by xlat_verbosity setting.
Eugene Syromyatnikov [Sat, 17 Mar 2018 09:32:59 +0000 (10:32 +0100)]
btrfs: print {min,max}_{offset,transid} unconditionally
As it looks like there's no reason to skip their printing.
* btrfs.c (print_key_value_internal): Do not check value argument
for holding non-zero value.
* tests/btrfs.c (btrfs_print_search_key): Update expected output.
Eugene Syromyatnikov [Mon, 19 Mar 2018 02:14:20 +0000 (03:14 +0100)]
tests/btrfs.c: accept possible failure of BTRFS_IOC_BALANCE_V2
BTRFS_IOC_BALANCE_V2 ioctl might fail sometimes (for example, if it
decides that it doesn't have enough free space).
* tests/btrfs.c (btrfs_test_balance_ioctls): Print expected output for
the BTRFS_IOC_BALANCE_V2 call based on its return code.
Eugene Syromyatnikov [Mon, 19 Mar 2018 02:13:56 +0000 (03:13 +0100)]
tests/btrfs.c: support volumes with mixed data/metadata in BTRFS_IOC_BALANCE_V2
For these volumes, pend/vend should be the same for data and meta.
* tests/btrfs.c (btrfs_test_balance_ioctls): Set args.meta.pend and
args.meta.vend to the same values as args.data.pend and args.data.vend,
respectively.
Eugene Syromyatnikov [Mon, 19 Mar 2018 01:45:31 +0000 (02:45 +0100)]
tests/btrfs.c: check BTRFS_IOC_SUBVOL_CREATE_V2 result
Otherwise the subsequent openat call fails with a cryptic message.
* tests/btrfs.c (btrfs_test_subvol_ioctls): Check return code of the
BTRFS_IOC_SUBVOL_CREATE_V2 ioctl call that is supposed to be successful.
Eugene Syromyatnikov [Sun, 18 Mar 2018 06:56:52 +0000 (07:56 +0100)]
tests/btrfs.c: add pid suffix to the created directory, remove it on exit
If multiple tests are running simultaneously in the same directory,
conflicts (and test failures) may happen.
* tests/btrfs.c (path, dir_name_fmt, dir_name): New variables.
(btrfs_test_ino_path_ioctls): Use dir_name for printing directory name.
(rm_test_dir): New function.
(main): Generate dir_name, use it instead of fixed name, add rm_test_dir
as an atexit handler.
Eugene Syromyatnikov [Sat, 17 Mar 2018 05:38:08 +0000 (06:38 +0100)]
btrfs: duplicate printing of opening braces on entering/exiting
* btrfs.c (MPERS_PRINTER_DECL(btrfs_ioctl)): Print opening bracket
on entering and exiting separately.
Eugene Syromyatnikov [Thu, 15 Mar 2018 22:57:25 +0000 (23:57 +0100)]
btrfs: refactor timespec printing into print_btrfs_timespec
* btrfs.c (print_btrfs_timespec): New function.
(MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_SET_RECEIVED_SUBVOL>:
Use print_btrfs_timespec for printing stime and rtime fields.
* tests/btrfs.c (btrfs_test_set_received_subvol_ioctl): Update expected
output.
Eugene Syromyatnikov [Wed, 14 Mar 2018 20:13:40 +0000 (21:13 +0100)]
btrfs: print abbreviations and field names more consistently
* btrfs.c (btrfs_print_data_container_header): Do not print ", val=".
(btrfs_print_ino_path_container): Print val field name only in case
of non-abbreviated output.
(btrfs_print_qgroup_inherit): Print qgroups field name only in case
of non-abbreviated output.
(btrfs_print_tree_search): Print buf field name only in case
of non-abbreviated output.
(MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_SEND>: Print
clone_sources field name only in case of non-abbreviated output.
(MPERS_PRINTER_DECL(btrfs_ioctl)) <case BTRFS_IOC_SPACE_INFO>: Print
spaces field name only in case of non-abbreviated output.
* tests/btrfs.c: Update expected output.
Eugene Syromyatnikov [Wed, 14 Mar 2018 19:55:00 +0000 (20:55 +0100)]
btrfs: move printing of the field name inside btrfs_print_qgroup_limit
* btrfs.c (btrfs_print_qgroup_limit): Print ", lim=".
(btrfs_print_qgroup_inherit, MPERS_PRINTER_DECL(btrfs_ioctl)): Do not
print ", lim=" before btrfs_print_qgroup_limit call.
Eugene Syromyatnikov [Tue, 13 Mar 2018 22:59:22 +0000 (23:59 +0100)]
btrfs: convert btrfs_print_{objectid,key_type} to PRINT_FIELD_XVAL_U
* btrfs.c (btrfs_print_key_type, btrfs_print_objectid): Convert into
thin wrappers around PRINT_FIELD_XVAL_U.
(btrfs_print_data_container_header, btrfs_print_tree_search,
MPERS_PRINTER_DECL(btrfs_ioctl)): Update calls to btrfs_print_key_type
and btrfs_print_objectid in accordance with the new calling convention.
(print_objectid_callback): Use printxvals_ex directly instead of
btrfs_print_objectid call.
* tests/btrfs.c (btrfs_print_objectid, btrfs_print_key_type): Update
expected output.
Eugene Syromyatnikov [Sat, 17 Mar 2018 07:33:05 +0000 (08:33 +0100)]
tests: add btrfs tests with verbose xlat decoding
* tests/btrfs-X.test: New test.
* tests/btrfs-vX.test: Likewise.
* tests/btrfs-vwX.test: Likewise.
* tests/btrfs-wX.test: Likewise.
* tests/Makefile.am (DECODER_TESTS): Add them.
* tests/btrfs.c (verbose_xlat): New static variable.
(prfl_btrfs, prxval_btrfs): New function.
(btrfs_print_qgroup_inherit, btrfs_print_vol_args_v2,
btrfs_print_balance_args, btrfs_test_balance_ioctls,
btrfs_test_clone_ioctls, btrfs_test_defrag_ioctls,
btrfs_test_space_info_ioctl, btrfs_print_defrag_range_args,
btrfs_test_scrub_ioctls, btrfs_test_ino_path_ioctls,
btrfs_test_send_ioctl, btrfs_test_send_ioctl,
btrfs_test_quota_ctl_ioctl, btrfs_test_get_dev_stats_ioctl,
btrfs_test_get_dev_stats_ioctl, btrfs_test_dev_replace_ioctl,
btrfs_test_dev_replace_ioctl, btrfs_print_features): Use prfl_btrfs and
prxval_btrfs instead of printflags and printxval, respectively.
(btrfs_test_balance_ioctls, btrfs_test_ino_path_ioctls,
btrfs_test_quota_ctl_ioctl, btrfs_test_dev_replace_ioctl,
btrfs_test_dev_replace_ioctl): Update expected output based on
verbose_xlat setting.
(btrfs_print_defrag_range_args): Add compress_type_known arg, pass it
to prxval_btrfs.
(main): Handle -X option.
Eugene Syromyatnikov [Wed, 4 Apr 2018 16:48:06 +0000 (18:48 +0200)]
tests: check -X option syntax
* tests/options-syntax.test: Add checks for -X option with invalid
arguments.
Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
Eugene Syromyatnikov [Sat, 10 Mar 2018 04:12:45 +0000 (05:12 +0100)]
Add user interface for configuring xlat output style
* strace.c (init): Handle -X option, set xlat_verbosity
according to -X argument.
* strace.1.in: Document -X option.
* NEWS: Mention it.
Closes: https://github.com/strace/strace/issues/27
Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
Eugene Syromyatnikov [Mon, 26 Mar 2018 04:37:16 +0000 (06:37 +0200)]
bpf: print fields that interpreted as pointers using printaddr64
* bpf.c (BEGIN_BPF_CMD_DECODER(BPF_MAP_LOOKUP_ELEM),
BEGIN_BPF_CMD_DECODER(BPF_MAP_UPDATE_ELEM)): Print key and value
fields using PRINT_FIELD_ADDR64.
(BEGIN_BPF_CMD_DECODER(BPF_MAP_DELETE_ELEM)): Print key field using
PRINT_FIELD_ADDR64.
(BEGIN_BPF_CMD_DECODER(BPF_MAP_GET_NEXT_KEY)): Print key and next_key
field using PRINT_FIELD_ADDR64.
(BEGIN_BPF_CMD_DECODER(BPF_PROG_LOAD)): Print insns and log_buf fields
using PRINT_FIELD_ADDR64.
(BEGIN_BPF_CMD_DECODER(BPF_PROG_TEST_RUN)): Print data_in and data_out
fields using PRINT_FIELD_ADDR64.
* tests/bpf.c: Update expected output.
Dmitry V. Levin [Fri, 20 Apr 2018 13:15:38 +0000 (13:15 +0000)]
build: make it even more reproducible
* Makefile.am (today): Consistently print the UTC date in C locale.
* configure.ac (RPM_CHANGELOGTIME, DEB_CHANGELOGTIME): Likewise.
* maint/update_copyright_years.sh: Likewise.
* copyright-year-gen: Likewise. When $SOURCE_DATE_EPOCH is non-empty,
use it as fallback date before the current system date.
References: https://github.com/strace/strace/pull/68
Dmitry V. Levin [Thu, 19 Apr 2018 18:03:58 +0000 (18:03 +0000)]
unwind: move unwind_tcb_init invocation to after_successful_attach
There is no need to call unwind_tcb_init before the tracee is attached.
* strace.c (alloctcb) [ENABLE_STACKTRACE]: Move unwind_tcb_init
invocation ...
(after_successful_attach) [ENABLE_STACKTRACE]: ... here.
(init) [ENABLE_STACKTRACE]: Remove unwind_tcb_init invocation loop.
* unwind.c (unwind_tcb_fin): Skip if tcp->unwind_queue is NULL.
Dmitry V. Levin [Thu, 19 Apr 2018 18:03:58 +0000 (18:03 +0000)]
strace: move setting of post-attach flags inside after_successful_attach
* strace.c (after_successful_attach): Add "flags" argument.
Set TCB_ATTACHED, TCB_STARTUP, and "flags" in tcp->flags.
All users updated.
Dmitry V. Levin [Thu, 19 Apr 2018 18:03:58 +0000 (18:03 +0000)]
strace: rename newoutf to after_successful_attach
This function is going to be used for other things that have to be done
right after a successful attach, hence the rename.
* strace.c (newoutf): Rename to after_successful_attach,
all users updated.
Dmitry V. Levin [Thu, 19 Apr 2018 18:03:58 +0000 (18:03 +0000)]
unwind: remove stray newline in error diagnostics
* unwind-libdw.c (tcb_init): Do not pass trailing "\n" to error_msg
as the latter prints newline itself.
Dmitry V. Levin [Thu, 19 Apr 2018 18:03:58 +0000 (18:03 +0000)]
build: make it more reproducible
* file-date-gen: Consistently print the UTC date in C locale.
When $SOURCE_DATE_EPOCH is non-empty, use it as fallback date
before the current system date.
Reported-by: Chris Lamb <lamby@debian.org>
Closes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=896016
Closes: https://github.com/strace/strace/pull/68
Masatake YAMATO [Thu, 19 Apr 2018 08:49:47 +0000 (17:49 +0900)]
unwind: initialize unwind context only if given tcb is initialized
With libdw based unwinder, following warnings are reported
when -p is passed before -k:
$ ./strace -p 1 -k
...
./strace: dwfl_linux_proc_attach returned an error for process 0: No such file or directory
...
It seems that commit
54c7792b, "Fix libunwind segfault when -p is
passed before -k" doesn't fix the original issue.
* strace.c (init) [ENABLE_STACKTRACE]: Initialize unwind context only
if given tcb is initialized.
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
Dmitry V. Levin [Thu, 12 Apr 2018 23:00:29 +0000 (23:00 +0000)]
bpf: harmonize length checks
The rest of the decoder uses offsetof to check the length.
* bpf.c (BEGIN_BPF_CMD_DECODER(BPF_OBJ_PIN),
BEGIN_BPF_CMD_DECODER(BPF_PROG_GET_NEXT_ID),
BEGIN_BPF_CMD_DECODER(BPF_PROG_GET_FD_BY_ID),
BEGIN_BPF_CMD_DECODER(BPF_MAP_GET_FD_BY_ID)): Use offsetof instead
of offsetofend.
Eugene Syromyatnikov [Mon, 5 Mar 2018 14:53:48 +0000 (15:53 +0100)]
bpf: add support for map_name and map_ifindex fields in BPF_MAP_CREATE
* bpf.c (BEGIN_BPF_CMD_DECODER(BPF_MAP_CREATE)): Decode map_name
and map_ifindex fields that were added in Linux commits
v4.15-rc1~84^2~605^2~3 and v4.16-rc1~123^2~145^2~5^2~8, respectively.
* bpf_attr.h (struct BPF_MAP_CREATE_struct): Add map_name
and map_ifindex fields.
* tests/bpf.c (init_BPF_MAP_CREATE_attr7): New function.
(BPF_MAP_CREATE_checks): Remove const qualifier, add two more checks.
Eugene Syromyatnikov [Mon, 5 Mar 2018 14:53:08 +0000 (15:53 +0100)]
bpf: improve handling of various sizes of BPF_MAP_CREATE attributes
* bpf.c (BEGIN_BPF_CMD_DECODER(BPF_MAP_CREATE)): Skip printing
the rest of the structure if len is less than the offset of the end
of max_entries, map_flags, or inner_map_fd field.
* tests/bpf.c (BPF_MAP_CREATE_checks): Add two more checks.
Eugene Syromyatnikov [Sun, 25 Mar 2018 10:27:28 +0000 (12:27 +0200)]
tests: add checks for bpf BPF_MAP_CREATE arguments
* tests/bpf.c (BPF_MAP_CREATE_checks): Add two more checks.
Eugene Syromyatnikov [Fri, 2 Mar 2018 23:30:32 +0000 (00:30 +0100)]
bpf: print numa_node using xlat
As the value of -1 has a special meaning. The issue is complicated
by the fact that this constant is not exported by UAPI.
* xlat/numa_node.in: New file.
* bpf.c (BEGIN_BPF_CMD_DECODER(BPF_MAP_CREATE)): Print numa_node field
using printxvals_ex with a special xlat style.
Eugene Syromyatnikov [Wed, 14 Mar 2018 20:08:34 +0000 (21:08 +0100)]
btrfs: use umove_or_printaddr_ignore_syserror instead of u_error mangling
* btrfs.c (MPERS_PRINTER_DECL(btrfs_ioctl)) <case
BTRFS_IOC_TREE_SEARCH_V2>: Use umove_or_printaddr_ignore_syserror
instead of tcp->u_error mangling around umove_or_printaddr call.
Eugene Syromyatnikov [Wed, 14 Mar 2018 20:02:47 +0000 (21:02 +0100)]
defs.h: introduce umove_or_printaddr{,64}_ignore_syserror wrappers
* defs.h (umove_or_printaddr64_ignore_syserror): New macro, a thin
wrapper around umoven_or_printaddr64_ignore_syserror.
(umove_or_printaddr_ignore_syserror): New macro, a thin wrapper around
umoven_or_printaddr_ignore_syserror.
Eugene Syromyatnikov [Tue, 13 Mar 2018 22:51:54 +0000 (23:51 +0100)]
print_fields.h: add PRINT_FIELD_XVAL_U for printing xlat in %u format
* print_fields.h (PRINT_FIELD_XVAL_U): New macro.
Eugene Syromyatnikov [Tue, 13 Mar 2018 22:46:14 +0000 (23:46 +0100)]
print_fields.h: add PRINT_FIELD_U64 for printing u64 with UINT64_MAX handling
* print_fields.h (PRINT_FIELD_U64): New macro.
Eugene Syromyatnikov [Sat, 10 Mar 2018 05:16:17 +0000 (06:16 +0100)]
bpf_sock_filter: use print_xlat32
We can't simply use print_xlat here due to the way those SKF_*_OFF
constants are defined.
* bpf_sock_filter.c (print_sock_filter_k): Use print_xlat32 for printing
SKF_AD_OFF, SKF_NET_OFF, and SKF_LL_OFF named constants.
Eugene Syromyatnikov [Thu, 12 Apr 2018 22:57:46 +0000 (00:57 +0200)]
defs.h: add print_xlat32 macro
For those cases where inadvertent sign extension is possible.
* defs.h (print_xlat32): New macro, a wrapper for print_xlat_ex.
Eugene Syromyatnikov [Sat, 10 Mar 2018 05:56:21 +0000 (06:56 +0100)]
open: use print_xlat_d in print_dirfd
* open.c (print_dirfd): Use print_xlat_d for printing AT_FDCWD named
constant.
Eugene Syromyatnikov [Sat, 10 Mar 2018 05:17:31 +0000 (06:17 +0100)]
fanotify: use print_xlat_d
* fanotify.c (SYS_FUNC(fanotify_mark)): Use print_xlat_d for printing
FAN_NOFD named constant.
Eugene Syromyatnikov [Sat, 7 Apr 2018 00:11:07 +0000 (02:11 +0200)]
Add print_xlat_u and print_xlat_d shorthands
Add variants of print_xlat with various value printing formats.
* defs.h (print_xlat_u, print_xlat_d): New macro, a wrapper for
print_xlat_ex.
Eugene Syromyatnikov [Wed, 4 Apr 2018 11:24:54 +0000 (13:24 +0200)]
xlat: introduce XLAT_STYLE_FMT_D
As there are some possible users for it, apparently.
* defs.h (XLAT_STYLE_FORMAT_MASK): Update the value in order to
accommodate XLAT_STYLE_FMT_D.
(enum xlat_style) <XLAT_STYLE_FMT_D>: New enumeration entity.
(printxval64_d, printxval_d): New function, a shorthand for
printxvals_ex with a single xlat and XLAT_STYLE_FMT_D xlat style.
* xlat.c (sprint_xlat_val): Handle XLAT_STYLE_FMT_D.
Eugene Syromyatnikov [Wed, 4 Apr 2018 11:22:52 +0000 (13:22 +0200)]
defs.h: add shorthands for printing xval with XLAT_STYLE_FMT_U
* defs.h (printxval_u, printxval64_u): New function, a shorthand for
printxvals_ex with a single xlat and XLAT_STYLE_FMT_U as a style.
Eugene Syromyatnikov [Sat, 10 Mar 2018 06:20:26 +0000 (07:20 +0100)]
Add support for various xlat formats
Since xlat printing routines now have a notion of "style" that should be
used for printing xlat values, we can also employ this argument for
passing information about number printing format (unsigned decimal
or hexadecimal, so far).
* defs.h (XLAT_STYLE_FORMAT_SHIFT, XLAT_STYLE_FORMAT_MASK): New macro
constant.
(enum xlat_style) <XLAT_STYLE_FMT_X, XLAT_STYLE_FMT_U>: New enumeration
entities.
* xlat.c (xlat_verbose, xlat_format): New macro for checking specific
aspect of style argument.
(get_xlat_style): Use xlat_verbose for checking xlat verbosity style.
(sprint_xlat_val, print_xlat_val): New function, for easing printing
raw constant number with respect to printing format style.
(printxvals_ex, sprintxval_ex, printxval_searchn_ex,
printxval_searchn_ex, sprintflags_ex, printflags_ex, print_xlat_ex):
Use xlat_verbose macro for xlat verbosity style checks. Use
print_xlat_val instead of direct raw xlat value printing.
Eugene Syromyatnikov [Sat, 10 Mar 2018 05:56:40 +0000 (06:56 +0100)]
v4l2: use print_xlat in print_v4l2_queryctrl
* v4la.c (print_v4l2_queryctrl): Use print_xlat for printing
V4L2_CTRL_FLAG_NEXT_CTRL named constant.
Eugene Syromyatnikov [Sat, 10 Mar 2018 05:29:41 +0000 (06:29 +0100)]
prctl: use print_xlat_ex to print PR_SET_PTRACER_ANY
We cannot simply use print_xlat as PR_SET_PTRACER_ANY is defined
differently in kernel headers.
* prctl.c (SYS_FUNC(prctl)) <case PR_SET_PTRACER>: Use print_xlat_ex
for printing PR_SET_PTRACER_ANY named constant.
Eugene Syromyatnikov [Sat, 10 Mar 2018 05:18:51 +0000 (06:18 +0100)]
nlattr: use print_xlat
* nlattr.c (print_nlattr): Use print_xlat for printing NLA_F_NESTED and
NLA_F_NET_BYTEORDER named constants.
Eugene Syromyatnikov [Sat, 10 Mar 2018 05:18:04 +0000 (06:18 +0100)]
ipc_defs.h: use print_xlat
* ipc_defs.h (PRINTCTL): Use print_xlat for printing IPC_64 named
constant.