2021-04-26  Dmitry V. Levin  <ldv@strace.io>

	Prepare for 5.12 release.
	* NEWS: Update for 5.12 release.

	Update copyright headers.
	Headers updated automatically using maint/update_copyright_years.sh
	script.

2021-04-26  Dmitry V. Levin  <ldv@strace.io>

	Fix preprocessor indentation.
	Indent the C preprocessor directives to reflect their nesting
	using the following script:

	$ cppi -l $(git grep -El '^[[:space:]]*#[[:space:]]*(if|ifdef|ifndef|elif|else|endif|define|pragma)[[:space:]]' src tests |grep -v '\.sh$') |while read f; do
		cppi < "$f" > "$f".cppi; mv "$f".cppi "$f"
	done

2021-04-25  Dmitry V. Levin  <ldv@strace.io>

	swapon: use print_fields.h helpers.
	* src/swapon.c (SYS_FUNC(swapon)): Use tprint_arg_next and PRINT_VAL_U.

	statx: use print_fields.h helpers.
	* src/statx.c (SYS_FUNC(statx)): Use tprint_arg_next.

2021-04-25  наб  <nabijaczleweli@gmail.com>
	    Dmitry V. Levin  <ldv@strace.io>

	Add ioctl entries for OpenZFS ioctls.
	Before/after of strace zfs list:
	-ioctl(3, _IOC(_IOC_NONE, 0x5a, 0x4, 0), 0x7ffe7f41e3b0) = 0
	-ioctl(3, _IOC(_IOC_NONE, 0x5a, 0x12, 0), 0x7ffe7f41e3c0) = 0
	-ioctl(3, _IOC(_IOC_NONE, 0x5a, 0x5, 0), 0x7ffe7f41ad30) = 0
	-ioctl(3, _IOC(_IOC_NONE, 0x5a, 0x27, 0), 0x7ffe7f41e320) = 0
	-ioctl(3, _IOC(_IOC_NONE, 0x5a, 0x14, 0), 0x7ffe7f41e370) = 0
	-ioctl(3, _IOC(_IOC_NONE, 0x5a, 0x14, 0), 0x7ffe7f41ad30) = -1 ESRCH (No such process)
	+ioctl(3, ZFS_IOC_POOL_CONFIGS, 0x7ffffae160c0) = 0
	+ioctl(3, ZFS_IOC_OBJSET_STATS, 0x7ffffae160d0) = 0
	+ioctl(3, ZFS_IOC_POOL_STATS, 0x7ffffae12a40) = 0
	+ioctl(3, ZFS_IOC_POOL_GET_PROPS, 0x7ffffae16030) = 0
	+ioctl(3, ZFS_IOC_DATASET_LIST_NEXT, 0x7ffffae16080) = 0
	+ioctl(3, ZFS_IOC_DATASET_LIST_NEXT, 0x7ffffae12a40) = -1 ESRCH (No such process)
	-ioctl(3, _IOC(_IOC_NONE, 0x5a, 0x3f, 0), 0x7ffe7f41e5b0) = -1 EPERM (Operation not permitted)
	+ioctl(3, ZFS_IOC_LOG_HISTORY, 0x7ffffae162c0) = -1 EPERM (Operation not permitted)

	Before/after of strace zfs/cmd/zvol_id/zvol_id /dev/zd0:
	-ioctl(3, _IOC(_IOC_READ, 0x12, 0x7d, 0x100), 0x7fffa7776e20) = 0
	+ioctl(3, BLKZNAME, 0x7ffe02f435b0)      = 0

	* maint/ioctls_zfs.sh New file.
	* src/ioctls_zfs.h: New file, generated from
	https://github.com/openzfs/zfs tree using maint/ioctls_zfs.sh script.
	* ioctlsort.c: Include "ioctls_zfs.h".
	* src/Makefile.am (EXTRA_DIST): Add ioctls_zfs.h.
	(ioctlsort%.o): Add $(srcdir)/ioctls_zfs.h to prerequisites.
	* tests/ioctl.c: Test a few ZFS ioctls.

2021-04-25  Dmitry V. Levin  <ldv@strace.io>

	seccomp: use print_fields.h helpers.
	* src/seccomp.c (SYS_FUNC(seccomp)): Use tprint_arg_next,
	tprint_indirect_begin, tprint_indirect_end, and PRINT_VAL_U.

	scsi: use print_fields.h helpers.
	* src/scsi.c (decode_sg_io, decode_sg_scsi_id, scsi_ioctl): Use
	tprint_arg_next, tprint_indirect_begin, tprint_indirect_end,
	PRINT_VAL_U, and PRINT_VAL_X.

	rtc: use print_fields.h helpers.
	* src/rtc.c (decode_rtc_vl): Use tprint_indirect_begin and
	tprint_indirect_end.
	(rtc_ioctl): Use tprint_arg_next and PRINT_VAL_U.

	quota: use print_fields.h helpers.
	* src/quota.c (decode_cmd_data, print_qcmd, SYS_FUNC(quotactl)): Use
	tprints_arg_begin, tprint_arg_next, tprint_arg_end,
	tprint_indirect_begin, tprint_indirect_end, and PRINT_VAL_U.

	process: use print_fields.h helpers.
	* src/process.c (SYS_FUNC(ptrace)): Use tprint_arg_next and PRINT_VAL_U.

	print_time: use print_fields.h helpers.
	* src/print_time.c (SYS_FUNC(time)): Use tprint_indirect_begin,
	tprint_indirect_end, and PRINT_VAL_D.

	prctl: use print_fields.h helpers.
	* src/prctl.c (print_prctl_args, SYS_FUNC(prctl)): Use tprint_arg_next,
	tprint_indirect_begin, tprint_indirect_end, PRINT_VAL_D, PRINT_VAL_U,
	and PRINT_VAL_X.

	numa: use print_fields.h helpers.
	* src/numa.c (print_mode): Use PRINT_VAL_X.
	(SYS_FUNC(migrate_pages), SYS_FUNC(mbind), SYS_FUNC(set_mempolicy),
	SYS_FUNC(get_mempolicy), SYS_FUNC(move_pages)): Use tprint_arg_next,
	tprint_indirect_begin, tprint_indirect_end, and PRINT_VAL_U.

2021-04-24  Dmitry V. Levin  <ldv@strace.io>

	nsfs: use print_fields.h helpers.
	* src/nsfs.c (nsfs_ioctl): Use tprint_arg_next, tprint_indirect_begin,
	and tprint_indirect_end.

	net: use print_fields.h helpers.
	* src/net.c (SYS_FUNC(socket), decode_sockname, SYS_FUNC(accept4),
	SYS_FUNC(send), SYS_FUNC(sendto), SYS_FUNC(recv), SYS_FUNC(recvfrom),
	do_pipe, SYS_FUNC(socketpair), print_sockopt_fd_level_name,
	print_get_error, SYS_FUNC(getsockopt), SYS_FUNC(setsockopt)): Use
	tprints_arg_begin, tprint_arg_next, tprint_arg_end,
	tprint_indirect_begin, tprint_indirect_end, tprint_value_changed,
	PRINT_VAL_D, and PRINT_VAL_U.
	* tests/sockname.c (test_sockname_syscall): Update expected output
	by printing " => " instead of "->" in cases of changed socklen.
	* tests/net-y-unix.c (main): Likewise.
	* tests/net-yy-unix.c (main): Likewise.
	* tests/so_linger.c (main): Likewise.
	* tests/so_peercred.c (main): Likewise.
	* tests/sock_filter-v.c (main): Likewise.
	* tests/sockopt-sol_netlink.c (main): Likewise.
	* tests/net.expected: Likewise.
	* tests/sun_path.expected: Likewise.

	net: use print_array.
	* src/net.c (decode_pair_fd): Rewrite using print_array.
	(printpair_fd): Remove.
	(SYS_FUNC(pipe)) [HAVE_ARCH_GETRVAL2]: Rewrite without printpair_fd.

2021-04-23  Dmitry V. Levin  <ldv@strace.io>

	fs_f_ioctl: use print_fields.h helpers.
	* src/fs_f_ioctl.c (decode_fs_ioc_flags): Use tprint_indirect_begin
	and tprint_indirect_end.
	(decode_fiemap, fs_f_ioctl): Use tprint_arg_next.

	mtd: use print_fields.h helpers.
	* src/mtd.c (decode_otp_select): Use tprint_indirect_begin and
	tprint_indirect_end.
	(mtd_ioctl): Use tprint_arg_next.
	(decode_erase_info_user, decode_erase_info_user64, decode_mtd_oob_buf,
	decode_mtd_oob_buf64, decode_otp_info, decode_otp_select,
	decode_mtd_write_req, decode_mtd_info_user, decode_nand_oobinfo,
	decode_nand_ecclayout_user, decode_mtd_ecc_stats): Remove tprints calls.

	msghdr: use print_fields.h helpers.
	* src/msghdr.c (print_cmsg_type_data): Use PRINT_VAL_X.
	(decode_msg_control): Use tprint_array_begin, tprint_array_next,
	tprint_array_end, and PRINT_VAL_U.
	(print_struct_msghdr): Use tprint_value_changed and PRINT_VAL_D.
	(SYS_FUNC(sendmsg), SYS_FUNC(recvmsg)): Use tprint_arg_next and
	PRINT_VAL_D.
	* tests/msg_name.c (test_msg_name): Update expected output by printing
	" => " instead of "->" in cases of changed msg_namelen values.
	* tests/mmsg_name.c (print_msghdr): Likewise.

	msghdr: use print_local_array_ex.
	* src/defs.h (print_xint8_array_member): New prototype.
	* src/util.c (print_xint8_array_member): New function.
	* src/msghdr.c (print_scm_rights, print_cmsg_uint): Rewrite using
	print_local_array_ex.
	(print_cmsg_xint8_t): New function.
	(print_cmsg_uint8_t, print_cmsg_ip_opts): Remove.
	(cmsg_ip_printers): Replace print_cmsg_uint8_t and print_cmsg_ip_opts
	with print_cmsg_xint8_t.
	* tests/inet-cmsg.c (print_opts): Update expected output by printing
	bytes using "%#x" format instead of "0x%02x".

	Make print_fd_array_member global and move it from io_uring.c to util.c.
	* src/defs.h (print_fd_array_member): New prototype.
	* src/io_uring.c (print_fd_array_member): Remove static qualifier,
	move ...
	* src/util.c: ... here.

	mmsghdr: use print_fields.h helpers.
	* src/mmsghdr.c (SYS_FUNC(sendmmsg), do_recvmmsg): Use tprint_arg_next
	and PRINT_VAL_U.

	mount: use print_fields.h helpers.
	* src/mount.c (SYS_FUNC(mount)): Use tprint_arg_next.

2021-04-22  Dmitry V. Levin  <ldv@strace.io>

	mem: use print_fields.h helpers.
	* src/mem.c (print_mmap_flags, print_mmap, SYS_FUNC(munmap),
	do_mprotect, SYS_FUNC(mremap), SYS_FUNC(madvise),
	SYS_FUNC(process_madvise), SYS_FUNC(msync), SYS_FUNC(mlock2),
	SYS_FUNC(mincore), SYS_FUNC(remap_file_pages), print_protmap_entry,
	SYS_FUNC(subpage_prot)): Use tprint_arg_next, PRINT_VAL_D,
	PRINT_VAL_U, and PRINT_VAL_X.

	mem: use print_array to decode mincore syscall.
	* src/mem.c (print_mincore_entry): New function.
	(SYS_FUNC(mincore)): Use it with print_array to print the 3rd argument
	of mincore syscall.

2021-04-22  Dmitry V. Levin  <ldv@strace.io>

	mem: assume that MREMAP_FIXED is defined.
	Starting with commit v5.7~80, xlat/mremap_flags.h provides fallback
	definitions for all its constants including MREMAP_FIXED.

	* src/mem.c (SYS_FUNC(mremap)): Assume that MREMAP_FIXED is defined.

2021-04-21  Dmitry V. Levin  <ldv@strace.io>

	kvm: use print_fields.h helpers.
	* src/kvm.c (kvm_ioctl_create_vcpu, kvm_ioctl_set_user_memory_region,
	kvm_ioctl_decode_regs, kvm_ioctl_decode_cpuid2, kvm_ioctl_decode_sregs,
	kvm_ioctl_decode_check_extension): Use tprint_arg_next,
	tprint_array_begin, tprint_array_end, and PRINT_VAL_U.

	kexec: use print_fields.h helpers.
	* src/kexec.c (print_seg): Use PRINT_VAL_U.
	(SYS_FUNC(kexec_load), SYS_FUNC(kexec_file_load)): Use tprint_arg_next
	and PRINT_VAL_U.

	ipc_shm: use print_fields.h helpers.
	* src/ipc_shm.c (print_shmaddr_shmflg): Use tprint_arg_next.

2021-04-20  Dmitry V. Levin  <ldv@strace.io>

	mpers.awk, ioctls_sym.awk: add binutils 2.36 support.
	The output format of "readelf --debug-dump=info --wide" changed
	in binutils 2.36, breaking mpers.awk and ioctls_sym.awk scripts.

	* src/mpers.awk: Extend regexps to handle the output format of
	"readelf --debug-dump=info --wide" produced by binutils 2.36.
	* maint/ioctls_sym.awk: Likewise.
	* NEWS: Mention this change.

	Resolves: https://github.com/strace/strace/issues/171
	Resolves: https://github.com/strace/strace/issues/180

2021-04-19  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>

	Update ioctl entries from linux v5.12.
	* src/linux/32/ioctls_inc_align16.h: Update from src/linux v5.12-rc8
	using ioctls_gen.sh.
	* src/linux/32/ioctls_inc_align32.h: Likewise.
	* src/linux/32/ioctls_inc_align64.h: Likewise.
	* src/linux/64/ioctls_inc.h: Likewise.
	* src/linux/x32/ioctls_inc0.h: Likewise.
	* src/linux/aarch64/ioctls_arch0.h: Likewise.
	* src/linux/i386/ioctls_arch0.h: Likewise.
	* src/linux/mips/ioctls_arch0.h: Likewise.
	* src/linux/powerpc/ioctls_arch0.h: Likewise.
	* src/linux/s390/ioctls_arch0.h: Likewise.
	* src/linux/s390x/ioctls_arch0.h: Likewise.
	* src/linux/x86_64/ioctls_arch0.h: Likewise.
	* NEWS: Mention this.

2021-04-19  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>

	arm: remove kvm ioctl definitions.
	arm 32bit KVM host support was removed in Linux v5.7-rc1.

	* maint/ioctls_sym.sh: Remove arm architecture from the list
	of kvm-capable architectures.
	* src/linux/arm/ioctls_arch0.h: Regenerate.

2021-04-19  Dmitry V. Levin  <ldv@strace.io>

	tests: check decoding of mount_setattr syscall.
	* tests/mount_setattr.c: New file.
	* tests/mount_setattr-P.c: Likewise.
	* tests/gen_tests.in (mount_setattr, mount_setattr-P): New entries.
	* tests/pure_executables.list: Add mount_setattr and mount_setattr-P.
	* tests/.gitignore: Likewise.

2021-04-18  Dmitry V. Levin  <ldv@strace.io>

	Implement decoding of mount_setattr syscall.
	... introduced by Linux kernel commits v5.12-rc1~64^2~6 and
	v5.12-rc1~64^2~5.

	* src/mount_setattr.c: New file.
	* Makefile.am (strace_SOURCES): Add mount_setattr.c.
	* src/xlat/mount_attr_attr.in: New file.
	* src/xlat/mount_attr_propagation.in: Likewise.
	* src/xlat/mount_setattr_flags.in: Likewise.
	* src/linux/generic/syscallent-common.h [BASE_NR + 442]: Wire up
	mount_setattr.
	* src/pathtrace.c (pathtrace_match_set): Handle SEN_mount_setattr.
	* NEWS: Mention this change.

2021-04-18  Dmitry V. Levin  <ldv@strace.io>

	xlat: rename mount_attr_flags.in to fsmount_attr_flags.in.
	* src/xlat/mount_attr_flags.in: Rename to
	src/xlat/fsmount_attr_flags.in, to avoid confusion introduced by upcoming mount_setattr syscall.
	* src/fsmount.c: Include "xlat/fsmount_attr_flags.h" instead of
	"xlat/mount_attr_flags.h".
	(SYS_FUNC(fsmount)): Replace mount_attr_flags with fsmount_attr_flags.

2021-04-17  Dmitry V. Levin  <ldv@strace.io>

	ipc_shm: use print_fields.h helpers.
	* src/ipc_shm.c (SYS_FUNC(shmget)): Use tprint_arg_next and PRINT_VAL_U.
	(print_shmaddr_shmflg): New function.
	(SYS_FUNC(shmat)): Use it, tprint_arg_next, and PRINT_VAL_D.

2021-04-16  Dmitry V. Levin  <ldv@strace.io>

	ipc_semctl: use print_fields.h helpers.
	* src/ipc_semctl.c (print_semid_ds, print_seminfo, SYS_FUNC(semctl)):
	Use tprint_indirect_begin, tprint_indirect_end, tprint_arg_next, and
	PRINT_VAL_D.

2021-04-15  Dmitry V. Levin  <ldv@strace.io>

	ipc_sem: use print_fields.h helpers.
	* src/ipc_sem.c (tprint_sembuf_array, SYS_FUNC(semop), do_semtimedop,
	SYS_FUNC(semget)): Use tprint_arg_next, PRINT_VAL_U, and PRINT_VAL_D.

2021-04-14  Dmitry V. Levin  <ldv@strace.io>

	ipc_msg: use print_fields.h helpers.
	* src/ipc_msg.c (tprint_msgsnd, tprint_msgrcv, SYS_FUNC(msgget),
	SYS_FUNC(msgrcv)): Use tprint_arg_next, PRINT_VAL_U, and PRINT_VAL_D.

2021-04-13  Dmitry V. Levin  <ldv@strace.io>

	futex: use print_fields.h helpers.
	* src/futex.c (do_futex): Use tprint_arg_next, PRINT_VAL_U, and
	PRINT_VAL_X.

2021-04-12  Dmitry V. Levin  <ldv@strace.io>

	fanotify: use print_fields.h helpers.
	* src/fanotify.c (SYS_FUNC(fanotify_init), SYS_FUNC(fanotify_mark)): Use
	tprint_arg_next.

2021-04-11  Dmitry V. Levin  <ldv@strace.io>

	evdev: use print_fields.h helpers.
	* src/evdev.c (abs_ioctl, keycode_ioctl, keycode_V2_ioctl, getid_ioctl,
	decode_bitset, mtslots_ioctl, repeat_ioctl, bit_ioctl, evdev_read_ioctl,
	evdev_write_ioctl): Remove tprints(", ") invocations.
	(evdev_write_ioctl): Use PRINT_VAL_D and PRINT_VAL_U.
	(evdev_ioctl): Use tprint_arg_next.
	* src/evdev_mpers.c (evdev_write_ioctl_mpers): Remove tprint_arg_next
	invocation.

2021-04-10  Dmitry V. Levin  <ldv@strace.io>

	evdev: use print_array.
	* src/evdev.c (mtslots_ioctl): Use print_array instead of fetching data
	into a VLA and printing it manually.

2021-04-09  Dmitry V. Levin  <ldv@strace.io>

	print_fields.h: introduce tprint_indirect_begin and tprint_indirect_end.
	* src/print_fields.h (tprint_indirect_begin, tprint_indirect_end): New
	inline functions.
	* src/util.c (DEF_PRINTNUM, DEF_PRINTNUM_ADDR, DEF_PRINTPAIR,
	printnum_fd, printnum_pid): Use them.

2021-04-08  Dmitry V. Levin  <ldv@strace.io>

	desc: use print_fields.h helpers.
	* src/desc.c (decode_select, do_pselect6): Use tprint_arg_next and
	PRINT_VAL_D.

2021-04-07  Dmitry V. Levin  <ldv@strace.io>

	capability: use print_fields.h helpers.
	* src/capability.c (SYS_FUNC(capget), SYS_FUNC(capset)): Use
	tprint_arg_next.

2021-04-06  Dmitry V. Levin  <ldv@strace.io>

	bpf_filter: use print_fields.h helpers.
	* src/bpf_filter.c (print_bpf_filter_stmt, print_bpf_filter_jump): Use
	tprints_arg_begin, tprint_arg_next, tprint_arg_end, and PRINT_VAL_X.

2021-04-05  Dmitry V. Levin  <ldv@strace.io>

	xlat: update NFT_MSG_* constants.
	* src/xlat/nf_nftables_msg_types.in (NFT_MSG_NEWFLOWTABLE,
	NFT_MSG_GETFLOWTABLE, NFT_MSG_DELFLOWTABLE): New constants introduced
	by Linux kernel commit v4.16-rc1~123^2~216^2~8.
	* src/netlink.c (decode_nlmsg_flags_netfilter) Handle NFT_MSG_NEWFLOWTABLE,
	NFT_MSG_GETFLOWTABLE, and NFT_MSG_DELFLOWTABLE.
	* NEWS: Mention this change.

2021-04-04  Renaud Métrich  <rmetrich@redhat.com>
	    Dmitry V. Levin  <ldv@strace.io>

	Implement --secontext[=full] option to display SELinux contexts.
	This is very useful when debugging SELinux issues, in particular, when
	a process runs in an unexpected context or didn't transition properly,
	or typically when a file being opened does not have the proper context.

	When --secontext=full is specified, strace will print the complete
	context (user, role, type and category) instead of just the type which
	is printed for --secontext option, as shown in the examples below:

	Without any "--secontext" options:
	-----------------------------------------------------------------------
	118104  16:52:11.141122 select(9, [4<TCP:[0.0.0.0:22]> 6<TCPv6:[[::]:22]>], NULL, NULL, NULL) = 1 (in [4]) <1.845416>
	119820  16:52:13.133319 openat(AT_FDCWD, "/home/rmetrich/.ssh/authorized_keys", O_RDONLY|O_NONBLOCK) = 11</home/rmetrich/.ssh/authorized_keys> <0.000399>
	-----------------------------------------------------------------------

	With "--secontext=full" option:
	-----------------------------------------------------------------------
	118104 [system_u:system_r:sshd_t:s0-s0:c0.c1023] 16:52:11.141122 select(9, [4<TCP:[0.0.0.0:22]> 6<TCPv6:[[::]:22]>], NULL, NULL, NULL) = 1 (in [4]) <1.845416>
	119820 [system_u:system_r:sshd_t:s0-s0:c0.c1023] 16:52:13.133319 openat(AT_FDCWD, "/home/rmetrich/.ssh/authorized_keys" [system_u:object_r:nfs_t:s0], O_RDONLY|O_NONBLOCK) = 11</home/rmetrich/.ssh/authorized_keys> [system_u:object_r:nfs_t:s0] <0.000399>
	-----------------------------------------------------------------------

	With "--secontext" option:
	-----------------------------------------------------------------------
	118104 [sshd_t] 16:52:11.141122 select(9, [4<TCP:[0.0.0.0:22]> 6<TCPv6:[[::]:22]>], NULL, NULL, NULL) = 1 (in [4]) <1.845416>
	119820 [sshd_t] 16:52:13.133319 openat(AT_FDCWD, "/home/rmetrich/.ssh/authorized_keys" [nfs_t], O_RDONLY|O_NONBLOCK) = 11</home/rmetrich/.ssh/authorized_keys> [nfs_t] <0.000399>
	-----------------------------------------------------------------------

	To implement this, a new "--with-libselinux" configure option has been
	introduced.  It defaults to "check", which means automatic support on
	SELinux aware systems.

2021-04-04  Alyssa Ross  <hi@alyssa.is>

	pathtrace: fix typo in comment.
	* src/pathtrace.c (pathtrace_match_set): Replace TRACE_DESCRIPTOR
	with TRACE_DESC in comment.

2021-04-04  Dmitry V. Levin  <ldv@strace.io>

	xlat: update MTD_* constants.
	* src/xlat/mtd_flags_options.in (MTD_SLC_ON_MLC_EMULATION): New constant
	introduced by Linux kernel commit v5.8-rc1~68^2~5^2~145.
	* NEWS: Mention this change.

2021-04-03  Dmitry V. Levin  <ldv@strace.io>

	xlat: update V4L2_* constants.
	* src/xlat/v4l2_control_id_bases.in (V4L2_CID_USER_CCS_BASE): New
	constant introduced by Linux kernel commit v5.12-rc1~134^2~264.
	* src/xlat/v4l2_control_ids.in (V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY):
	New constant introduced by Linux kernel commit v5.10-rc1~175^2~362.
	(V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE): New constant introduced
	by Linux kernel commit v5.10-rc1~175^2~360.
	(V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID): New constant introduced
	by Linux kernel commit v5.12-rc1~134^2~188.
	(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP,
	V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP,
	V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP,
	V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP,
	V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP,
	V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP,
	V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP,
	V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP): New constants introduced
	by Linux kernel commit v5.12-rc1~134^2~191.
	(V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR,
	V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR,
	V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR,
	V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR,
	V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR,
	V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR,
	V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR): New constants introduced
	by Linux kernel commit v5.12-rc1~134^2~190.
	* NEWS: Mention this change.

2021-04-02  Dmitry V. Levin  <ldv@strace.io>

	tests: simplify vcpu_dev_should_have_cpuid.
	* tests/ioctl_kvm_run_common.c (vcpu_dev_should_have_cpuid): Use
	"/proc/self/fd/%u" instead of "/proc/%d/fd/%d" with getpid().

2021-04-01  Dmitry V. Levin  <ldv@strace.io>

	tests: introduce create_and_enter_subdir and leave_and_remove_subdir.
	Introduce the pair of functions that is going to be used to make sure
	the current workdir of the tracee is different from the current workdir
	of the tracer.

	Use the new interface in a few tests where the difference is going to be
	relevant with --secontext option.

	* tests/subdir.c: New file.
	* tests/Makefile.am (libtests_a_SOURCES): Add subdir.c.
	* tests/tests.h (create_and_enter_subdir, leave_and_remove_subdir):
	New function prototypes.
	* tests/access.c (main): Use create_and_enter_subdir and
	leave_and_remove_subdir.
	* tests/chmod.c (main): Likewise.
	* tests/execve.c (main): Likewise.
	* tests/fchmod.c (main): Likewise.
	* tests/fchmodat.c (main): Likewise.
	* tests/fchownat.c (main): Likewise.
	* tests/linkat.c (main): Likewise.
	* tests/open.c (main): Likewise.
	* tests/openat.c (main): Likewise.

2021-03-31  Dmitry V. Levin  <ldv@strace.io>
	    Renaud Métrich  <rmetrich@redhat.com>

	tests: add fchmod-y test.
	* tests/dirfd.c: New file.
	* tests/Makefile.am (libtests_a_SOURCES): Add dirfd.c.
	* tests/tests.h (get_dir_fd, get_fd_path): New function prototypes.
	* tests/fchmod-y.c: New file.
	* tests/fchmod.c (main): Create a sample file, handle YFLAG macro.
	* tests/gen_tests.in (fchmod-y): New entry.
	* tests/pure_executables.list: Add fchmod-y.
	* tests/.gitignore: Likewise.

2021-03-30  Dmitry V. Levin  <ldv@strace.io>

	Bring lists back to the sorted order.
	* src/Makefile.am (libstrace_a_SOURCES): Make the list sorted again.
	* tests/Makefile.am (check_PROGRAMS): Likewise.
	* tests/.gitignore: Likewise.
	* tests/gen_tests.in: Likewise.

2021-03-29  Dmitry V. Levin  <ldv@strace.io>

	xlat: update RTM_* constants.
	* src/xlat/routing_flags.in (RTM_F_OFFLOAD_FAILED): New constant
	introduced by Linux kernel commit v5.12-rc1~200^2~116^2~9.
	* NEWS: Mention this change.

	xlat: update RESOLVE_* constants.
	* src/xlat/open_resolve_flags.in (RESOLVE_CACHED): New constant
	introduced by Linux kernel commit v5.12-rc1~169^2~1.
	* NEWS: Mention this change.
	* tests/openat2.c (main): Update expected output.

2021-03-29  Dmitry V. Levin  <ldv@strace.io>

	netlink: remove nfnetlink_cthelper.h nfnl_acct_msg_types workaround.
	<linux/netfilter/nfnetlink_cthelper.h> used to have a cut-and-paste typo
	that required a workaround to allow this header to be included along
	with <linux/netfilter/nfnetlink_acct.h>.  Since this typo was fixed by
	Linux kernel commit v5.12-rc3~39^2~22^2~8 and the bundled
	<linux/netfilter/nfnetlink_cthelper.h> was updated, the workaround is no
	longer needed.

	* src/netlink.c: Remove nfnetlink_cthelper.h nfnl_acct_msg_types workaround.

2021-03-28  Dmitry V. Levin  <ldv@strace.io>

	tests: remove redundant __NR_* checks for syscallent-common.h syscalls.
	Assume that all __NR_* macros corresponding to syscalls listed in
	syscallent-common.h are properly defined when "scno.h" is included.

	* tests/close_range.c: Assume that __NR_close_range is defined.
	* tests/faccessat2.c: Assume that __NR_faccessat2 is defined.
	* tests/fsconfig.c: Assume that __NR_fsconfig is defined.
	* tests/fsmount.c: Assume that __NR_fsmount is defined.
	* tests/fsopen.c: Assume that __NR_fsopen is defined.
	* tests/fspick.c: Assume that __NR_fspick is defined.
	* tests/io_uring_enter.c: Assume that __NR_io_uring_enter is defined.
	* tests/io_uring_register.c: Assume that __NR_io_uring_register is
	defined.
	* tests/io_uring_setup.c: Assume that __NR_io_uring_setup is defined.
	* tests/move_mount.c: Assume that __NR_move_mount is defined.
	* tests/open_tree.c: Assume that __NR_open_tree is defined.
	* tests/openat2.c: Assume that __NR_openat2 is defined.
	* tests/pidfd_getfd.c: Assume that __NR_pidfd_getfd is defined.
	* tests/pidfd_open.c: Assume that __NR_pidfd_open is defined.
	* tests/pidfd_send_signal.c: Assume that __NR_pidfd_send_signal is
	defined.

2021-03-28  Deborah Brouwer  <3563deb6753@gmail.com>

	xlat: update ST_* constants.
	* scr/xlat/statfs_flags.in (ST_NOSYMFOLLOW): New constant introduced by
	Linux kernel commit v5.10-rc1~19^2~9.
	* NEWS: Mention this change.

2021-03-27  Dmitry V. Levin  <ldv@strace.io>

	xlat: update MPOL_* constants.
	* src/xlat/mpol_mode_flags.in (MPOL_F_NUMA_BALANCING): New constant
	introduced by Linux kernel commit v5.12-rc1~40^2~13.
	* src/numa.c (print_mode): Add MPOL_F_NUMA_BALANCING to the flags mask.
	* NEWS: Mention this change.
	* tests/mbind.c (mpol_modes): Check it.
	* tests/set_mempolicy.c (mpol_modes): Likewise.

2021-03-26  Dmitry V. Levin  <ldv@strace.io>

	xlat: update KVM_* constants.
	* src/xlat/kvm_cap.in (KVM_CAP_X86_BUS_LOCK_EXIT): New constant
	introduced by Linux kernel commit v5.12-rc1~26^2~162.
	(KVM_CAP_PPC_DAWR1): New constant introduced by Linux kernel commit
	v5.12-rc1~26^2~37^2~9.
	* src/xlat/kvm_exit_reason.in (KVM_EXIT_X86_BUS_LOCK): New constant
	introduced by Linux kernel commit v5.12-rc1~26^2~162.
	(KVM_EXIT_XEN): New constant introduced by Linux kernel commit
	v5.12-rc1~26^2~97.
	* NEWS: Mention this change.

2021-03-25  Dmitry V. Levin  <ldv@strace.io>

	xlat: update DEVCONF_* constants.
	* src/xlat/inet6_devconf_indices.in (DEVCONF_RPL_SEG_ENABLED): New
	constant introduced by Linux kernel commit v5.7-rc1~146^2~38^2~2.
	(DEVCONF_RA_DEFRTR_METRIC): New constant introduced by Linux kernel
	commit v5.12-rc1~200^2~246.
	* NEWS: Mention this change.

2021-03-24  Dmitry V. Levin  <ldv@strace.io>

	xlat: update IORING_* constants.
	* src/xlat/uring_setup_features.in (IORING_FEAT_NATIVE_WORKERS): New
	constant introduced by Linux kernel commit v5.12-rc1~8^2~11.
	* NEWS: Mention this change.

2021-03-23  Dmitry V. Levin  <ldv@strace.io>

	rtnl_link: update decoding of IFLA_BRPORT_* netlink attributes.
	* src/xlat/rtnl_ifla_brport_attrs.in (IFLA_BRPORT_MRP_RING_OPEN): New
	constant introduced by Linux kernel commit v5.8-rc1~165^2~412^2~7.
	(IFLA_BRPORT_MRP_IN_OPEN): New constant introduced by Linux kernel
	commit v5.9-rc1~133^2~258^2.
	(IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, IFLA_BRPORT_MCAST_EHT_HOSTS_CNT):
	New constants introduced by Linux kernel commit v5.12-rc1~200^2~235^2.
	* src/rtnl_link.c (ifla_brport_nla_decoders) <IFLA_BRPORT_MRP_RING_OPEN,
	IFLA_BRPORT_MRP_IN_OPEN, IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
	IFLA_BRPORT_MCAST_EHT_HOSTS_CNT>: New decoders.
	* NEWS: Mention this change.

2021-03-22  Dmitry V. Levin  <ldv@strace.io>

	xlat: update PTRACE_SYSEMU* for s390.
	* src/xlat/ptrace_cmds.in (PTRACE_SYSEMU, PTRACE_SYSEMU_SINGLESTEP)
	[__s390__]: Provide fallback definitions introduced by Linux kernel
	commit v5.12-rc1~138^2~61.

	bundled: update linux UAPI headers to v5.12-rc4.
	* bundled/linux/include/uapi/linux/dm-ioctl.h: Update to
	headers_install'ed Linux kernel v5.12-rc4.
	* bundled/linux/include/uapi/linux/gpio.h: Likewise.
	* bundled/linux/include/uapi/linux/if_link.h: Likewise.
	* bundled/linux/include/uapi/linux/input.h: Likewise.
	* bundled/linux/include/uapi/linux/io_uring.h: Likewise.
	* bundled/linux/include/uapi/linux/mount.h: Likewise.
	* bundled/linux/include/uapi/linux/openat2.h: Likewise.
	* bundled/linux/include/uapi/linux/perf_event.h: Likewise.
	* bundled/linux/include/uapi/linux/pkt_sched.h: Likewise.
	* bundled/linux/include/uapi/linux/rtnetlink.h: Likewise.
	* bundled/linux/include/uapi/linux/tee.h: Likewise.
	* bundled/linux/include/uapi/linux/v4l2-controls.h: Likewise.
	* bundled/linux/include/uapi/linux/netfilter/nf_tables.h: Likewise.
	* bundled/linux/include/uapi/linux/netfilter/nfnetlink_cthelper.h:
	Likewise.

2021-03-21  Dmitry V. Levin  <ldv@strace.io>

	ioctl: use print_fields.h helpers.
	* src/ioctl.c: Use tprints_arg_begin, tprint_arg_next, tprint_arg_end,
	PRINT_VAL_U, and PRINT_VAL_X.

	fs_x_ioctl: use print_fields.h helpers.
	* src/fs_x_ioctl.c (fs_x_ioctl): Use tprint_arg_next.

2021-03-20  Dmitry V. Levin  <ldv@strace.io>

	xgetdents: use print_fields.h helpers.
	* src/xgetdents.c (decode_dents): Use tprint_array_begin,
	tprint_array_next, tprint_array_end, and tprint_more_data_follows
	(xgetdents): Use tprint_arg_next and PRINT_VAL_U.

	xattr: use print_fields.h helpers.
	* src/xattr.c: Use tprint_arg_next and PRINT_VAL_U.

2021-03-19  Dmitry V. Levin  <ldv@strace.io>

	watchdog_ioctl: use print_fields.h helpers.
	* src/watchdog_ioctl.c (watchdog_ioctl): Use tprint_arg_next.

2021-03-18  Dmitry V. Levin  <ldv@strace.io>

	utimes: use print_fields.h helpers.
	* src/utimes.c: Use tprint_arg_next.

	utime: use print_fields.h helpers.
	* src/utime.c (SYS_FUNC(utime)): Use tprint_arg_next.

	userfaultfd: use print_fields.h helpers.
	* src/userfaultfd.c: Use tprint_arg_next.

	ubi: use print_fields.h helpers.
	* src/ubi.c: Use tprint_arg_next.

	ustat: use print_fields.h helpers.
	* src/ustat.c (SYS_FUNC(ustat)): Use tprint_arg_next.

	umount: use print_fields.h helpers.
	* src/umount.c (SYS_FUNC(umount2)): Use tprint_arg_next.

2021-03-17  Dmitry V. Levin  <ldv@strace.io>

	time: use print_fields.h helpers.
	* src/time.c: Use tprint_arg_next and PRINT_VAL_D.

2021-03-16  Dmitry V. Levin  <ldv@strace.io>

	sock: print the interface name as a string.
	The interface name passed to SIOCBRADDBR and SIOCBRDELBR ioctl commands
	is not a pathname but an arbitrary string.

	* src/sock.c (sock_ioctl) <SIOCBRADDBR, SIOCBRDELBR>: Print the
	interface name using printstr_ex instead of printpathn.
	* tests/ioctl_sock.c (test_str): Update expected output.

2021-03-16  Dmitry V. Levin  <ldv@strace.io>

	memfd_create: print the first argument as a string.
	The first argument of memfd_create syscall is not a pathname but an
	arbitrary string.

	* src/memfd_create.c [!MFD_NAME_MAX_LEN] (MFD_NAME_MAX_LEN): New macro.
	(SYS_FUNC(memfd_create)): Print the first argument of syscall using
	printstr_ex instead of printpathn.
	* tests/gen_tests.in (memfd_create, memfd_create-Xabbrev,
	memfd_create-Xraw, memfd_create-Xverbose): Pass -s256.
	* tests/memfd_create.c (main): Update expected output.

2021-03-15  Dmitry V. Levin  <ldv@strace.io>

	sysmips: use print_fields.h helpers.
	* src/sysmips.c (SYS_FUNC(sysmips)): Use tprint_arg_next
	and PRINT_VAL_X.

	syslog: use print_fields.h helpers.
	* src/syslog.c (SYS_FUNC(syslog)): Use tprint_arg_next and PRINT_VAL_D.

	statfs64: use print_fields.h helpers.
	* src/statfs64.c (SYS_FUNC(statfs64)): Use tprint_arg_next
	and PRINT_VAL_U.

	statfs: use print_fields.h helpers.
	* src/statfs.c (SYS_FUNC(statfs)): Use tprint_arg_next.

	stat64: use print_fields.h helpers.
	* src/stat64.c (SYS_FUNC(stat64), SYS_FUNC(fstat64),
	SYS_FUNC(fstatat64)): Use tprint_arg_next.

	stat: use print_fields.h helpers.
	* src/stat.c (SYS_FUNC(stat), SYS_FUNC(fstat), SYS_FUNC(newfstatat)):
	Use tprint_arg_next.

	sram_alloc: use print_fields.h helpers.
	* src/sram_alloc.c (SYS_FUNC(sram_alloc)): Use tprint_arg_next
	and PRINT_VAL_U.

	socketcall: use print_fields.h helpers.
	* src/socketcall.c (SYS_FUNC(socketcall)): Use tprint_arg_next.

	signalfd: use print_fields.h helpers.
	* src/signalfd.c (do_signalfd): Use tprint_arg_next and PRINT_VAL_U.

	sigaltstack: use print_fields.h helpers.
	* src/sigaltstack.c (SYS_FUNC(sigaltstack)): Use tprint_arg_next.

	shutdown: use print_fields.h helpers.
	* src/shutdown.c (SYS_FUNC(shutdown)): Use tprint_arg_next.

	sendfile: use print_fields.h helpers.
	* src/sendfile.c (SYS_FUNC(sendfile64), SYS_FUNC(sendfile)): Use
	tprint_arg_next and PRINT_VAL_U.

	sched: use print_fields.h helpers.
	* src/sched.c: Use tprint_arg_next and PRINT_VAL_U.

	tests: use xasprintf instead of asprintf.
	* tests/clone-flags.c: Include "xmalloc.h", replace all asprintf
	invocations followed by perror_msg_and_fail with xasprintf.
	* tests/epoll_pwait2.c: Likewise.
	* tests/faccessat.c: Likewise.
	* tests/faccessat2.c: Likewise.
	* tests/ioctl_kvm_run_common.c: Likewise.
	* tests/keyctl.c: Likewise.
	* tests/lock_file.c: Likewise.
	* tests/mq.c: Likewise.
	* tests/mq_sendrecv.c: Likewise.
	* tests/netlink_protocol.c: Likewise.
	* tests/old_mmap.c: Likewise.
	* tests/tracer_ppid_pgid_sid.c: Likewise.

2021-03-15  Dmitry V. Levin  <ldv@strace.io>

	xmalloc: introduce xasprintf.
	xasprintf is a trivial wrapper around vasprintf,
	the primary purpose of adding it is to simplify tests.

	* src/xmalloc.h (xasprintf): New function declaration.
	* src/xmalloc.c: Include <stdarg.h> and <stdio.h>
	(xasprintf): New function.

2021-03-14  Dmitry V. Levin  <ldv@strace.io>

	riscv: use print_fields.h helpers.
	* src/riscv.c (riscv_flush_icache): Use tprint_arg_next.

	resource: use print_fields.h helpers.
	* src/resource.c (print_rlim64_t, print_rlim32_t, SYS_FUNC(getrlimit),
	SYS_FUNC(setrlimit), SYS_FUNC(prlimit64), SYS_FUNC(getrusage),
	SYS_FUNC(osf_getrusage), priority_print_who, SYS_FUNC(getpriority),
	SYS_FUNC(setpriority)): Use tprint_arg_next, PRINT_VAL_D, and
	PRINT_VAL_U.

	renameat: use print_fields.h helpers.
	* src/renameat.c (decode_renameat, SYS_FUNC(renameat2)): Use
	tprint_arg_next.

	reboot: use print_fields.h helpers.
	* src/reboot.c (SYS_FUNC(reboot)): Use tprint_arg_next.

	readlink: use print_fields.h helpers.
	* src/readlink.c (decode_readlink, SYS_FUNC(readlinkat)): Use
	tprint_arg_next and PRINT_VAL_U.

	random_ioctl: use print_fields.h helpers.
	* src/random_ioctl.c (random_ioctl): Use tprint_arg_next.

	ptp: use print_fields.h helpers.
	* src/ptp.c (ptp_ioctl): Use tprint_arg_next and PRINT_VAL_D.

	process_vm: use print_fields.h helpers.
	* src/process_vm.c (SYS_FUNC(process_vm_readv),
	SYS_FUNC(process_vm_writev)): Use tprint_arg_next and PRINT_VAL_U.

	print_timeval: use print_fields.h helpers.
	* src/print_timeval.c (print_timeval_t, print_timeval32_t): Use
	tprint_struct_begin, tprint_struct_next, tprint_struct_end,
	PRINT_FIELD_D, and PRINT_FIELD_U.

	print_sigevent: use print_fields.h helpers.
	* src/print_sigevent.c (print_sigevent): Use tprint_struct_next.

	print_sg_req_info: use print_fields.h helpers.
	* src/print_sg_req_info.c (decode_sg_req_info): Use tprint_arg_next.

2021-03-13  Dmitry V. Levin  <ldv@strace.io>

	tprint_msgbuf: do not print the size of msgbuf.
	The size of msgbuf is not its part.

	* src/print_msgbuf.c (tprint_msgbuf): Do not print count.
	* src/ipc_msg.c (tprint_msgsnd, tprint_msgrcv): Print count.

2021-03-13  Dmitry V. Levin  <ldv@strace.io>

	print_kernel_version: use print_fields.h helpers.
	* src/print_kernel_version.c (print_kernel_version): Use tprints_arg_begin,
	tprint_arg_next, tprint_arg_end, PRINT_VAL_U, and PRINT_VAL_X.

	print_dev_t: use print_fields.h helpers.
	* src/print_dev_t.c (print_dev_t): Use tprints_arg_begin,
	tprint_arg_next, tprint_arg_end, and PRINT_VAL_X.

	ipc_shmctl: use print_fields.h helpers.
	* src/ipc_shmctl.c (SYS_FUNC(shmctl)): Use tprint_arg_next
	and PRINT_VAL_D.

	ipc_msgctl: use print_fields.h helpers.
	* src/ipc_msgctl.c (SYS_FUNC(msgctl)): Use tprint_arg_next
	and PRINT_VAL_D.

	evdev_mpers: use print_fields.h helpers.
	* src/evdev_mpers.c (evdev_write_ioctl_mpers): Use tprint_arg_next.

	print_fields.h: introduce tprint_comment_{begin,end}
	* src/print_fields.h (tprint_comment_begin, tprint_comment_end): New
	inline functions.
	(PRINT_FIELD_NET_PORT): Use them.
	* src/evdev.c (decode_bitset): Likewise.
	* src/ioctl.c (SYS_FUNC(ioctl)): Likewise.
	* src/mem.c (print_mmap_flags): Likewise.
	* src/memfd_create.c (SYS_FUNC(memfd_create)): Likewise.
	* src/numa.c (print_mode): Likewise.
	* src/print_dev_t.c (print_dev_t): Likewise.
	* src/print_kernel_version.c (print_kernel_version): Likewise.
	* src/process.c (print_user_offset_addr): Likewise.
	* src/quota.c (print_qcmd): Likewise.
	* src/s390.c (print_funcs): Likewise.
	* src/sockaddr.c (print_inet_addr, print_sll_protocol,
	print_bluetooth_l2_psm, print_bluetooth_l2_cid): Likewise.
	* src/strace.c (tprintf_comment): Likewise.
	* src/time.c (printclockname): Likewise.
	* src/xlat.c (printflags_ex): Likewise.

	Replace tprint_arg_begin with tprints_arg_begin.
	* src/print_fields.h (tprint_arg_begin): Remove.
	(tprints_arg_begin): New inline function.
	(PRINT_FIELD_NET_PORT): Use it.
	* src/syscall.c (syscall_entering_decode, syscall_entering_trace): Use
	tprints_arg_begin instead of tprint_arg_begin.

	print_ifindex: use print_fields.h helpers.
	* src/print_ifindex.c (print_ifindex) [!HAVE_IF_INDEXTONAME]:
	Use PRINT_VAL_U.

	poll: use print_fields.h helpers.
	* src/poll.c (decode_poll_entering, do_poll, do_ppoll): Use
	tprint_arg_next, PRINT_VAL_D, and PRINT_VAL_U.

	pkeys: use print_fields.h helpers.
	* src/pkeys.c (SYS_FUNC(pkey_alloc)): Use tprint_arg_next
	and PRINT_VAL_X.

	pidns: use print_fields.h helpers.
	* src/pidns.c (printpid, printpid_tgid_pgid): Use PRINT_VAL_D.

	pidfd_open: use print_fields.h helpers.
	* src/pidfd_open.c (SYS_FUNC(pidfd_open)): Use tprint_arg_next.

	pidfd_getfd: use print_fields.h helpers.
	* src/pidfd_getfd.c (SYS_FUNC(pidfd_getfd)): Use tprint_arg_next,
	PRINT_VAL_D, and PRINT_VAL_X.

	perf_ioctl: use print_fields.h helpers.
	* src/perf_ioctl.c (perf_ioctl_query_bpf, perf_ioctl_modify_attributes,
	perf_ioctl): Use tprint_arg_next, PRINT_VAL_D, and PRINT_VAL_U.

2021-03-12  Dmitry V. Levin  <ldv@strace.io>

	or1k_atomic: use print_fields.h helpers.
	* src/or1k_atomic.c (SYS_FUNC(or1k_atomic)): Use tprint_arg_next
	and PRINT_VAL_X.

	open_tree: use print_fields.h helpers.
	* src/open_tree.c (SYS_FUNC(open_tree)): Use tprint_arg_next.

	open: use print_fields.h helpers.
	* src/open.c (decode_open, SYS_FUNC(openat), SYS_FUNC(openat2),
	SYS_FUNC(creat)): Use tprint_arg_next and PRINT_VAL_U.

	oldstat: use print_fields.h helpers.
	* src/oldstat.c (SYS_FUNC(oldstat), SYS_FUNC(oldfstat)): Use
	tprint_arg_next.

	nbd_ioctl: use print_fields.h helpers.
	* src/nbd_ioctl.c (nbd_ioctl): Use tprint_arg_next and PRINT_VAL_U.

	mq: use print_fields.h helpers.
	* src/mq.c (SYS_FUNC(mq_open), do_mq_timedsend, do_mq_timedreceive,
	SYS_FUNC(mq_notify), SYS_FUNC(mq_getsetattr)): Use tprint_arg_next
	and PRINT_VAL_U.

	move_mount: use print_fields.h helpers.
	* src/move_mount.c (SYS_FUNC(move_mount)): Use tprint_arg_next.

	mknod: use print_fields.h helpers.
	* src/mknod.c (decode_mknod, SYS_FUNC(mknodat)): Use tprint_arg_next.

	membarrier: use print_fields.h helpers.
	* src/membarrier.c (SYS_FUNC(membarrier)): Use tprint_arg_next
	and PRINT_VAL_D.

2021-03-11  Dmitry V. Levin  <ldv@strace.io>

	lseek: use print_fields.h helpers.
	* src/lseek.c (SYS_FUNC(lseek), SYS_FUNC(llseek)): Use tprint_arg_next
	and PRINT_VAL_D.

	loop: use print_fields.h helpers.
	* src/loop.c: Use tprint_arg_next, PRINT_VAL_D, and PRINT_VAL_U.

	listen: use print_fields.h helpers.
	* src/listen.c (SYS_FUNC(listen)): Use tprint_arg_next and PRINT_VAL_D.

	link: use print_fields.h helpers.
	* src/link.c (SYS_FUNC(link), SYS_FUNC(linkat), SYS_FUNC(unlinkat),
	SYS_FUNC(symlinkat)): Use tprint_arg_next.

2021-03-11  Baruch Siach  <baruch@tkos.co.il>

	disable_ptrace_get_syscall_info, disable_ptrace_getregset: require fork()
	These helper programs require fork(), so they are incompatible with
	no-MMU systems.

	* src/disable_ptrace_request.c: Make the code depend on HAVE_FORK.

2021-03-10  Dmitry V. Levin  <ldv@strace.io>

	ldt: use print_fields.h helpers.
	* src/ldt.c (print_user_desc): Use PRINT_VAL_ID.
	(SYS_FUNC(modify_ldt)): Use tprint_arg_next, PRINT_VAL_D,
	and PRINT_VAL_U.

	print_fields.h: introduce PRINT_VAL_ID.
	* src/print_fields.h (PRINT_VAL_ID): New macro.
	(PRINT_FIELD_ID): Use it.
	* src/uid.c (printuid): Likewise.

2021-03-09  Dmitry V. Levin  <ldv@strace.io>

	keyctl: use print_fields.h helpers.
	* src/keyctl.c: Use tprint_arg_next, PRINT_VAL_D, PRINT_VAL_U,
	and PRINT_VAL_X.

	kcmp: use print_fields.h helpers.
	* src/kcmp.c (SYS_FUNC(kcmp)): Use tprint_arg_next and PRINT_VAL_X.

	ioprio: use print_fields.h helpers.
	* src/ioprio.c (SYS_FUNC(ioprio)): Use tprint_arg_next, PRINT_VAL_X,
