2025-09-28  Dmitry V. Levin  <ldv@strace.io>

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

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

2025-09-29  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>

	Update ioctl entries from linux v6.17.
	* src/linux/32/ioctls_inc_align16.h: Update from linux v6.17 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.
	* NEWS: Mention this.

2025-09-19  Eugene Syromyatnikov  <evgsyr@gmail.com>

	Fix typos reported by codespell.
	Correct the spelling issues reported by codespell[1].  The issues
	in the bundled directory are left intact.

	[1] https://fossies.org/linux/misc/strace-6.16.tar.xz/codespell.html

	* src/defs.h: Replace "appled" with "applied".
	* src/ldt.c: Replace "tht" with "the", following the change
	in v6.8-rc1~195^2 "arch/x86: Fix typos".
	* src/linux/s390/syscallent.h: Replace "Coporation" with "Corporation".
	* src/linux/s390x/syscallent.h: Likewise.
	* src/s390.c: Replce "re-declare" with "declare".

2025-09-02  dependabot[bot]  <49699333+dependabot[bot]@users.noreply.github.com>

	build(deps): bump actions/checkout from 4 to 5.
	Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
	- [Release notes](https://github.com/actions/checkout/releases)
	- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
	- [Commits](https://github.com/actions/checkout/compare/v4...v5)

	---
	updated-dependencies:
	- dependency-name: actions/checkout
	  dependency-version: '5'
	  dependency-type: direct:production
	  update-type: version-update:semver-major
	...

2025-09-02  Dmitry V. Levin  <ldv@strace.io>

	xlat: update V4L2_* constants.
	* src/xlat/v4l2_control_id_bases.in (V4L2_CID_USER_RKISP1_BASE):
	New constant introduced by Linux kernel commit v6.17-rc1~90^2~237.
	* src/xlat/v4l2_meta_fmts.in (V4L2_META_FMT_UVC_MSXU_1_5):
	New constant introduced by Linux kernel commit v6.17-rc1~90^2~9.
	* src/xlat/v4l2_pix_fmts.in (V4L2_PIX_FMT_RAW_CRU10,
	V4L2_PIX_FMT_RAW_CRU12, V4L2_PIX_FMT_RAW_CRU14,
	V4L2_PIX_FMT_RAW_CRU20): New constants introduced by Linux kernel
	commit v6.17-rc1~90^2~153.
	* NEWS: Mention this change.

	xlat: update PR_SYS_* constants.
	* src/xlat/pr_sud_cmds.in (PR_SYS_DISPATCH_ON): Rename to
	PR_SYS_DISPATCH_EXCLUSIVE_ON introduced by Linux kernel commit
	v6.17-rc1~152^2~2.
	(PR_SYS_DISPATCH_INCLUSIVE_ON): New constant introduced by the same
	commit.
	* tests/prctl-syscall-user-dispatch.c (main): Update.
	* NEWS: Mention this change.

2025-09-01  Dmitry V. Levin  <ldv@strace.io>

	xlat: update NETCONFA_* constants.
	* src/xlat/rtnl_netconf_attrs.in (NETCONFA_FORCE_FORWARDING): New
	constant introduced by Linux kernel commit v6.17-rc1~126^2~19.
	* src/rtnl_netconf.c (netconfmsg_nla_decoders): Handle
	NETCONFA_FORCE_FORWARDING.
	* NEWS: Mention this change.

	xlat: update NTF_EXT_* constants.
	* src/xlat/neighbor_cache_entry_ext_flags.in (NTF_EXT_EXT_VALIDATED):
	New constant introduced by Linux kernel commit v6.17-rc1~126^2~251^2~1.
	* tests/nlattr_ndmsg.c (main): Update expected output.
	* NEWS: Mention this change.

2025-08-31  Dmitry V. Levin  <ldv@strace.io>

	xlat: update KVM_* constants.
	* src/xlat/kvm_cap.in (KVM_CAP_ARM_CACHEABLE_PFNMAP_SUPPORTED): New
	constant introduced by Linux kernel commit v6.17-rc1~111^2~3^2~8^2.
	* NEWS: Mention this change.

	xlat: update KEXEC_* constants.
	* src/xlat/kexec_load_flags.in (KEXEC_FILE_NO_CMA):
	New constant introduced by Linux kernel commit v6.17-rc1~53^2~14.
	* tests/kexec_file_load.c (main): Update expected output.
	* NEWS: Mention this change.

	xlat: update DEVCONF_* constants.
	* src/xlat/inet6_devconf_indices.in (DEVCONF_FORCE_FORWARDING):
	New constant introduced by Linux kernel commit v6.17-rc1~126^2~19.
	* NEWS: Mention this change.

2025-08-28  Dmitry V. Levin  <ldv@strace.io>

	xlat: update BTN_* and KEY_* constants.
	* src/xlat/evdev_keycode.in (BTN_GRIPL, BTN_GRIPR, BTN_GRIPL2,
	BTN_GRIPR2): New constants introduced by Linux kernel commit
	v6.17-rc1~30^2^2~10.
	(KEY_PERFORMANCE): New constant introduced by Linux kernel commit
	v6.17-rc1~30^2^2~1.
	* NEWS: Mention this change.

	xlat: update XDP_* constants.
	* src/xlat/sock_xdp_options.in (XDP_MAX_TX_SKB_BUDGET): New constant
	introduced by Linux kernel commit v6.17-rc1~126^2~153.
	* NEWS: Mention this change.

2025-08-27  Dmitry V. Levin  <ldv@strace.io>

	xlat: update FALLOC_* constants.
	* src/xlat/falloc_flags.in (FALLOC_FL_WRITE_ZEROES): New constant
	introduced by Linux kernel commit v6.17-rc1~220^2^2~3.
	* tests/fallocate.c: Update.
	* NEWS: Mention this change.

	xlat: update ETHTOOL_MSG_* constants.
	* src/xlat/genl_ethtool_msg_recv.in (ETHTOOL_MSG_PSE_NTF): New constant
	introduced by Linux kernel commit v6.17-rc1~126^2~350^2~11.
	(ETHTOOL_MSG_RSS_NTF): New constant introduced by Linux kernel commit
	v6.17-rc1~126^2~291^2~2.
	(ETHTOOL_MSG_RSS_CREATE_ACT_REPLY, ETHTOOL_MSG_RSS_CREATE_NTF): New
	constants introduced by Linux kernel commit v6.17-rc1~126^2~52^2~2.
	(ETHTOOL_MSG_RSS_DELETE_NTF): New constant introduced by Linux kernel
	commit v6.17-rc1~126^2~52^2~1.
	* src/xlat/genl_ethtool_msg_send.in (ETHTOOL_MSG_RSS_SET): New constant
	introduced by Linux kernel commit v6.17-rc1~126^2~84^2~10.
	(ETHTOOL_MSG_RSS_CREATE_ACT): New constant introduced by Linux kernel
	commit v6.17-rc1~126^2~52^2~2.
	(ETHTOOL_MSG_RSS_DELETE_ACT): New constant introduced by Linux kernel
	commit v6.17-rc1~126^2~52^2~1.
	* tests/netlink_nlctrl.c (test_nla_ops_family): Check it.
	* NEWS: Mention this change.

2025-08-25  Dmitry V. Levin  <ldv@strace.io>

	xlat: update BTRFS_* constants.
	* src/xlat/btrfs_defrag_flags.in (BTRFS_DEFRAG_RANGE_NOCOMPRESS):
	New constant introduced by Linux kernel commit v6.17-rc1~240^2~8.
	* NEWS: Mention this.

	xlat: update BPF_* constants.
	* src/xlat/bpf_commands.in (BPF_PROG_STREAM_READ_BY_FD): New constant
	introduced by Linux kernel commit v6.17-rc1~125^2~36^2~10.
	* NEWS: Mention this change.

2025-08-21  Dmitry V. Levin  <ldv@strace.io>

	xlat: update SCM_* constants.
	* src/xlat/scmvals.in (SCM_INQ): New constant introduced
	by Linux kernel commit v6.17-rc1~126^2~172^2~1.
	* NEWS: Mention this change.

	net: implement decoding of SO_INQ socket option.
	* src/xlat/sock_options.in (SO_INQ): New constant introduced
	by Linux kernel commit v6.17-rc1~126^2~172^2~1.
	* src/net.c (print_getsockopt, print_setsockopt) <SO_INQ>: Print it.
	* tests/sockopt-sol_socket.c (main): Test it.
	* NEWS: Mention this change.

2025-08-21  Dmitry V. Levin  <ldv@strace.io>

	xlat: fix decoding of SO_DEVMEM_DONTNEED socket option.
	Unlike SCM_DEVMEM_LINEAR and SCM_DEVMEM_DMABUF, SO_DEVMEM_DONTNEED
	is a setsockopt socket option and not a control message type.

	* src/xlat/scmvals.in (SO_DEVMEM_DONTNEED): Move ...
	* src/xlat/setsock_options.in: ... here.

2025-08-19  Dmitry V. Levin  <ldv@strace.io>

	tests: check decoding of file_getattr and file_setattr syscalls.
	* tests/file_xetattr-common.c: New file.
	* tests/file_getattr.c: New test.
	* tests/file_getattr-P.c: Likewise.
	* tests/file_getattr-success-Xabbrev.c: Likewise.
	* tests/file_getattr-success-Xraw.c: Likewise.
	* tests/file_getattr-success-Xverbose.c: Likewise.
	* tests/file_getattr-success.c: Likewise.
	* tests/file_getattr-y.c: Likewise.
	* tests/file_getattr-yy.c: Likewise.
	* tests/file_setattr.c: Likewise.
	* tests/file_setattr-P.c: Likewise.
	* tests/file_setattr-Xabbrev.c: Likewise.
	* tests/file_setattr-Xraw.c: Likewise.
	* tests/file_setattr-Xverbose.c: Likewise.
	* tests/file_setattr-y.c: Likewise.
	* tests/file_setattr-yy.c: Likewise.
	* tests/test_fs_xflags.h (INVALID_FS_XFLAGS64): New macro.
	* tests/Makefile.am (EXTRA_DIST): Add file_xetattr-common.c.
	* tests/pure_executables.list: Add file_getattr, file_getattr-P,
	file_getattr-success, file_getattr-success-Xabbrev,
	file_getattr-success-Xraw, file_getattr-success-Xverbose,
	file_getattr-y, file_getattr-yy, file_setattr, file_setattr-P,
	file_setattr-Xabbrev, file_setattr-Xraw, file_setattr-Xverbose,
	file_setattr-y, and file_setattr-yy.
	* tests/.gitignore: Likewise.
	* tests/gen_tests.in (file_getattr, file_getattr-P,
	file_getattr-success, file_getattr-success-Xabbrev,
	file_getattr-success-Xraw, file_getattr-success-Xverbose,
	file_getattr-y, file_getattr-yy, file_setattr, file_setattr-P,
	file_setattr-Xabbrev, file_setattr-Xraw, file_setattr-Xverbose,
	file_setattr-y, file_setattr-yy): New tests.

2025-08-19  Dmitry V. Levin  <ldv@strace.io>

	Implement decoding of file_getattr and file_setattr syscalls.
	These new syscalls were introduced by Linux kernel commit
	v6.17-rc1~214^2~2.

	* src/xlat/file_attr_flags.in: New file.
	* src/file_attr.c: Likewise.
	* src/defs.h (fs_xflags): New declaration.
	* src/Makefile.am (libstrace_a_SOURCES): Add file_attr.c.
	* src/linux/generic/syscallent-common.h [BASE_NR + 468]: Wire up
	file_getattr.
	[BASE_NR + 469]: Wire up file_setattr.
	* src/pathtrace.c (pathtrace_match_set): Handle SEN_file_getattr and
	SEN_file_setattr.
	* NEWS: Mention this change.

2025-08-19  Dmitry V. Levin  <ldv@strace.io>

	tests: move {,IN}VALID_FS_XFLAGS{,STR} macros to a separate file.
	* tests/ioctl_fs_x.c (VALID_FS_XFLAGS, INVALID_FS_XFLAGS,
	VALID_FS_XFLAGS_STR, INVALID_FS_XFLAGS_STR): Move ...
	* tests/test_fs_xflags.h: ... to new file.
	* tests/Makefile.am (EXTRA_DIST): Add test_fs_xflags.h.

	tests/ioctl_fs_x: macroize FS_XFLAG_* strings.
	* tests/ioctl_fs_x.c (VALID_FSX_XFLAGS): Rename to VALID_FS_XFLAGS.
	(INVALID_FSX_XFLAGS): Rename to INVALID_FS_XFLAGS.
	(VALID_FS_XFLAGS_STR, INVALID_FS_XFLAGS_STR): New macros.
	(main): Use them.

2025-08-17  Gyorgy Sarvari  <skandigraun@gmail.com>

	tests: fix uio.test with musl-libc.
	musl-libc handles the pwrite calls differently than glibc, making
	the uio test fail.  Using glibc, there are separated pwrite and pwritev
	calls, however musl uses only pwritev2 for both pwrite and pwritev.

	To account to this difference, modify the expected matching regexp
	to also match the musl output (append it with an OR).

2025-08-11  Dmitry V. Levin  <ldv@strace.io>

	bundled: update linux UAPI headers to v6.17-rc1.
	* bundled/linux/include/uapi/linux/btrfs.h: Update to
	headers_install'ed Linux kernel v6.17-rc1.
	* bundled/linux/include/uapi/linux/devlink.h: Likewise.
	* bundled/linux/include/uapi/linux/ethtool.h: Likewise.
	* bundled/linux/include/uapi/linux/ethtool_netlink.h: Likewise.
	* bundled/linux/include/uapi/linux/ethtool_netlink_generated.h: Likewise.
	* bundled/linux/include/uapi/linux/falloc.h: Likewise.
	* bundled/linux/include/uapi/linux/fcntl.h: Likewise.
	* bundled/linux/include/uapi/linux/fs.h: Likewise.
	* bundled/linux/include/uapi/linux/if_link.h: Likewise.
	* bundled/linux/include/uapi/linux/if_xdp.h: Likewise.
	* bundled/linux/include/uapi/linux/in6.h: Likewise.
	* bundled/linux/include/uapi/linux/input-event-codes.h: Likewise.
	* bundled/linux/include/uapi/linux/input.h: Likewise.
	* bundled/linux/include/uapi/linux/io_uring.h: Likewise.
	* bundled/linux/include/uapi/linux/kexec.h: Likewise.
	* bundled/linux/include/uapi/linux/mctp.h: Likewise.
	* bundled/linux/include/uapi/linux/neighbour.h: Likewise.
	* bundled/linux/include/uapi/linux/netconf.h: Likewise.
	* bundled/linux/include/uapi/linux/netdev.h: Likewise.
	* bundled/linux/include/uapi/linux/netfilter/nfnetlink_hook.h: Likewise.
	* bundled/linux/include/uapi/linux/nl80211.h: Likewise.
	* bundled/linux/include/uapi/linux/nsfs.h: Likewise.
	* bundled/linux/include/uapi/linux/pkt_sched.h: Likewise.
	* bundled/linux/include/uapi/linux/prctl.h: Likewise.
	* bundled/linux/include/uapi/linux/v4l2-controls.h: Likewise.
	* bundled/linux/include/uapi/linux/version.h: Likewise.
	* bundled/linux/include/uapi/linux/videodev2.h: Likewise.

2025-08-06  Dmitry V. Levin  <ldv@strace.io>

	Post-release administrivia.
	* NEWS: Add a header line for the next release.
	* debian/changelog.in: Add a changelog entry for 6.16-1.
	* strace.spec.in: Likewise.

2025-08-05  Dmitry V. Levin  <ldv@strace.io>

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

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

	tests: change a few tests to check -N/--arg-names option.
	* tests/gen_tests.in (fchdir): Pass -N option.
	(flock): Pass --arg-names option.
	* tests/fchdir.c (main): Update expected output.
	* tests/flock.c (main): Likewise.

	tests: check -N/--arg-names error diagnostics.
	* tests/options-syntax.test: Check -N/--arg-names in combination with -c/--summary-only

2025-08-05  Gustavo Costa  <xfgusta@gmail.com>

	strace: add an option for printing syscall argument names.
	* src/strace.c (Nflag): New variable.
	(init): Handle -N/--arg-names option.
	(usage): Document it.
	* src/defs.h (Nflag): New variable declaration.
	* src/print_fields.h (tprints_arg_name) [IN_STRACE]: Use Nflag.
	* doc/strace.1.in: Document the new option.
	* NEWS: Mention this change.

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

	s390: annotate syscall argument names using tprints_arg_name and tprints_arg_next_name
	* src/s390.c (SYS_FUNC(s390_sthyi), SYS_FUNC(s390_guarded_storage),
	SYS_FUNC(s390_runtime_instr), SYS_FUNC(s390_pci_mmio_write),
	SYS_FUNC(s390_pci_mmio_read)): Annotate syscall argument names using
	tprints_arg_name and tprints_arg_next_name.

	prctl: annotate syscall argument names using tprints_arg_next_name.
	* src/prctl.c (print_get_uint_arg, print_set_kulong_arg): New functions.
	(SYS_FUNC(prctl)): Use them.
	(print_prctl_args,  SYS_FUNC(prctl)): Annotate syscall argument names
	using tprints_arg_next_name.

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

	prctl: enhance printing of the last argument of PR_SCHED_CORE.
	Only PR_SCHED_CORE_GET operation of PR_SCHED_CORE command takes the last
	argument as a pointer.

	* src/prctl.c (SYS_FUNC(prctl)) <PR_SCHED_CORE && !PR_SCHED_CORE_GET>:
	Do not treat the last argument as a pointer.
	* tests/prctl-sched-core.c (main): Update expected output.

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

	printargs: annotate syscall argument names.
	* src/util.c (printargs): Annotate syscall argument names using
	tprints_arg_name and tprints_arg_next_name.

	defs.h: define MAX_ARGS unconditionally.
	* src/defs.h (MAX_ARGS): Define unconditionally.

	defs.h: apply hardening to n_args() macro.
	* src/defs.h (n_args): Make sure the return value does not exceed
	MAX_ARGS.

	keyctl: annotate syscall argument names using tprints_arg_next_name.
	* src/keyctl.c (keyctl_get_keyring_id, keyctl_update_key,
	keyctl_handle_key_key, keyctl_read_key, keyctl_keyring_search,
	keyctl_chown_key, keyctl_instantiate_key, keyctl_instantiate_key_iov,
	keyctl_negate_key, keyctl_reject_key, keyctl_set_timeout,
	keyctl_get_persistent, keyctl_setperm_key, print_dh_params,
	keyctl_dh_compute, keyctl_pkey_query, keyctl_pkey_op,
	keyctl_restrict_keyring, keyctl_move, keyctl_capabilities,
	SYS_FUNC(keyctl)): Annotate syscall argument names using
	tprints_arg_next_name.

	ipc_msg: annotate indirect msgrcv syscall on error path.
	* src/ipc_msg.c (fetch_msgrcv_args): Use umoven and umove instead of
	their high-level wrappers.
	(SYS_FUNC(msgrcv)): When fetch_msgrcv_args returns an error, annotate
	syscall arguments using tprints_arg_next_name.

	src: remove no longer used function printargs_d.
	* src/defs.h (printargs_d): Remove.
	* src/util.c (printargs_d): Likewise.

	src: introduce a separate parser for timer_delete and timer_getoverrun syscalls
	* src/time.c (SYS_FUNC(timer_delete)): New function.
	* src/syscall_dummy.h (sys_timer_delete): Remove alias.
	(sys_timer_getoverrun): Alias to sys_timer_delete instead of printargs_d.

	src: enhance setpgrp decoder.
	* src/syscall_dummy.h (set_setpgrp): Alias to sys_setpgid instead of
	printargs_d.

	src: introduce a separate parser for nice syscall.
	* src/nice.c: New file.
	* src/Makefile.am (libstrace_a_SOURCES): Add nice.c.
	* src/syscall_dummy.h (sys_nice): Remove alias.

	src: introduce a separate parser for iopl syscall.
	* src/iopl.c: New file.
	* src/Makefile.am (libstrace_a_SOURCES): Add iopl.c.
	* src/syscall_dummy.h (sys_iopl): Remove alias.

2025-08-04  Gustavo Costa  <xfgusta@gmail.com>

	src: introduce a separate parser for pkey_free syscall.
	* src/pkeys.c (SYS_FUNC(pkey_free)): New function.
	* src/syscall_dummy.h (sys_pkey_free): Remove alias to printargs_d.

	src: introduce a separate parser for set_tid_address syscall.
	* src/set_tid_address.c: New file.
	* src/Makefile.am (libstrace_a_SOURCES): Add set_tid_address.c.
	* src/syscall_dummy.h (sys_set_tid_address): Remove alias to printargs.

	src: introduce a separate parser for exit syscall.
	* src/exit.c: New file.
	* src/Makefile.am (libstrace_a_SOURCES): Add exit.c.
	* src/syscall_dummy.h (sys_exit): Remove alias to printargs_d.

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

	src: remove no longer used function printargs_u.
	The last user of printargs_u was sys_alarm alias.

	* src/defs.h (printargs_u): Remove.
	* src/util.c (printargs_u): Likewise.

2025-08-04  Gustavo Costa  <xfgusta@gmail.com>

	src: introduce a separate parser for alarm syscall.
	* src/alarm.c: New file.
	* src/Makefile.am (libstrace_a_SOURCES): Add alarm.c.
	* src/syscall_dummy.h (sys_alarm): Remove alias to printargs_u.

	src: annotate syscall parsers using tprints_arg_name and tprints_arg_next_name
	* maint/gen/codegen.c (generate_decoder): Annotate syscall argument
	names using tprints_arg_name and tprints_arg_next_name.
	* src/gen/gen_hdio.c: Update generated file.
	* src/access.c (decode_access, decode_faccessat): Annotate syscall
	argument names using tprints_arg_name and tprints_arg_next_name.
	* src/affinity.c (SYS_FUNC(sched_setaffinity),
	SYS_FUNC(sched_getaffinity)): Likewise.
	* src/aio.c (SYS_FUNC(io_setup), SYS_FUNC(io_destroy),
	SYS_FUNC(io_submit), SYS_FUNC(io_cancel), print_io_getevents): Likewise.
	* src/alpha.c (SYS_FUNC(osf_statfs), SYS_FUNC(osf_fstatfs)): Likewise.
	* src/bind.c (SYS_FUNC(bind)): Likewise.
	* src/bjm.c (SYS_FUNC(delete_module), SYS_FUNC(init_module),
	SYS_FUNC(finit_module)): Likewise.
	* src/block.c (block_ioctl): Likewise.
	* src/bpf.c (SYS_FUNC(bpf)): Likewise.
	* src/btrfs.c (btrfs_ioctl): Likewise.
	* src/cacheflush.c (SYS_FUNC(cacheflush)): Likewise.
	* src/cachestat.c (SYS_FUNC(cachestat)): Likewise.
	* src/capability.c (SYS_FUNC(capget), SYS_FUNC(capset)): Likewise.
	* src/chdir.c (SYS_FUNC(chdir)): Likewise.
	* src/chmod.c (decode_chmod, decode_fchmodat, SYS_FUNC(fchmodat2),
	SYS_FUNC(fchmod)): Likewise.
	* src/clone.c (SYS_FUNC(clone3), SYS_FUNC(setns), SYS_FUNC(unshare)):
	Likewise.
	* src/close_range.c (SYS_FUNC(close_range)): Likewise.
	* src/copy_file_range.c (SYS_FUNC(copy_file_range)): Likewise.
	* src/counter_ioctl.c (counter_ioctl): Likewise.
	* src/desc.c (decode_select, do_pselect6, SYS_FUNC(close),
	SYS_FUNC(oldselect)): Likewise.
	* src/dirent.c (SYS_FUNC(readdir)): Likewise.
	* src/dm.c (dm_known_ioctl): Likewise.
	* src/dup.c (dup_123): Likewise.
	* src/epoll_ioctl.c (print_struct_epoll_params): Likewise.
	* src/epoll.c (SYS_FUNC(epoll_create), SYS_FUNC(epoll_create1),
	SYS_FUNC(epoll_ctl), epoll_wait_common, epoll_pwait_common): Likewise.
	* src/evdev.c (evdev_ioctl): Likewise.
	* src/eventfd.c (do_eventfd): Likewise.
	* src/execve.c (decode_execve, SYS_FUNC(execveat), SYS_FUNC(execv)):
	Likewise.
	* src/fadvise.c (SYS_FUNC(fadvise64), SYS_FUNC(fadvise64_64)): Likewise.
	* src/fallocate.c (SYS_FUNC(fallocate)): Likewise.
	* src/fanotify.c (SYS_FUNC(fanotify_init), SYS_FUNC(fanotify_mark)):
	Likewise.
	* src/fchownat.c (SYS_FUNC(fchownat)): Likewise.
	* src/fcntl.c (print_fcntl, SYS_FUNC(fcntl), SYS_FUNC(fcntl64)):
	Likewise.
	* src/file_handle.c (SYS_FUNC(name_to_handle_at),
	SYS_FUNC(open_by_handle_at)): Likewise.
	* src/flock.c (SYS_FUNC(flock)): Likewise.
	* src/fs_0x94_ioctl.c (decode_file_dedupe_range, fs_0x94_ioctl):
	Likewise.
	* src/fs_f_ioctl.c (decode_fiemap, fs_f_ioctl): Likewise.
	* src/fs_x_ioctl.c (fs_x_ioctl): Likewise.
	* src/fsconfig.c (SYS_FUNC(fsconfig)): Likewise.
	* src/fsmount.c (SYS_FUNC(fsmount)): Likewise.
	* src/fsopen.c (SYS_FUNC(fsopen)): Likewise.
	* src/fspick.c (SYS_FUNC(fspick)): Likewise.
	* src/fstatfs.c (SYS_FUNC(fstatfs)): Likewise.
	* src/fstatfs64.c (SYS_FUNC(fstatfs64)): Likewise.
	* src/futex.c (do_futex): Likewise.
	* src/futex2.c (SYS_FUNC(futex_waitv), SYS_FUNC(futex_wake),
	SYS_FUNC(futex_wait), SYS_FUNC(futex_requeue)): Likewise.
	* src/get_robust_list.c (SYS_FUNC(get_robust_list)): Likewise.
	* src/getcpu.c (SYS_FUNC(getcpu)): Likewise.
	* src/getcwd.c (SYS_FUNC(getcwd)): Likewise.
	* src/getpid.c (SYS_FUNC(getpgid), SYS_FUNC(getsid),
	SYS_FUNC(setpgid)): Likewise.
	* src/getrandom.c (SYS_FUNC(getrandom)): Likewise.
	* src/gpio_ioctl.c (print_gpiochip_info, print_gpioline_info,
	print_gpioline_info_unwatch, print_gpiohandle_request,
	print_gpioevent_request, print_gpiohandle_get_values,
	print_gpiohandle_set_values, print_gpiohandle_set_config,
	print_gpio_v2_line_info, print_gpio_v2_line_request,
	print_gpio_v2_line_get_values, print_gpio_v2_line_set_values,
	print_gpio_v2_line_set_config): Likewise.
	* src/hdio.c (print_hdio_getgeo, print_hdio_drive_cmd): Likewise.
	* src/hostname.c (SYS_FUNC(sethostname), SYS_FUNC(gethostname)):
	Likewise.
	* src/inotify_ioctl.c (inotify_ioctl): Likewise.
	* src/inotify.c (SYS_FUNC(inotify_add_watch),
	SYS_FUNC(inotify_rm_watch), SYS_FUNC(inotify_init1)): Likewise.
	* src/io_uring.c (SYS_FUNC(io_uring_setup), SYS_FUNC(io_uring_enter),
	SYS_FUNC(io_uring_register)): Likewise.
	* src/io.c (SYS_FUNC(read), SYS_FUNC(write), SYS_FUNC(readv),
	SYS_FUNC(writev), SYS_FUNC(pread), SYS_FUNC(pwrite), SYS_FUNC(tee),
	SYS_FUNC(splice), SYS_FUNC(vmsplice), do_preadv, do_pwritev): Likewise.
	* src/ioctl.c (SYS_FUNC(ioctl), ioctl_decode_unknown_type): Likewise.
	* src/ioperm.c (SYS_FUNC(ioperm)): Likewise.
	* src/ioprio.c (SYS_FUNC(ioprio_get), SYS_FUNC(ioprio_set)): Likewise.
	* src/ipc_msg.c (SYS_FUNC(msgget), SYS_FUNC(msgsnd), SYS_FUNC(msgrcv),
	tprint_msgsnd, tprint_msgrcv): Likewise.
	* src/ipc_msgctl.c (SYS_FUNC(msgctl)): Likewise.
	* src/ipc_sem.c (tprint_sembuf_array, do_semtimedop, SYS_FUNC(semop),
	SYS_FUNC(semget)): Likewise.
	* src/ipc_semctl.c (SYS_FUNC(semctl)): Likewise.
	* src/ipc_shm.c (SYS_FUNC(shmget), SYS_FUNC(shmat), SYS_FUNC(shmdt),
	print_shmaddr_shmflg): Likewise.
	* src/ipc_shmctl.c (SYS_FUNC(shmctl)): Likewise.
	* src/ipc.c (SYS_FUNC(ipc)): Likewise.
	* src/kcmp.c (SYS_FUNC(kcmp)): Likewise.
	* src/kd_ioctl.c (kiocsound, kd_mk_tone, kd_get_kb_type, kd_io,
	kd_set_mode, kd_get_mode, kd_screen_map, kd_uni_screen_map,
	kd_set_kbd_mode, kd_get_kbd_mode, kd_kbd_entry, kd_kbd_str_entry,
	kd_diacr, kd_diacr_uc, kd_keycode, kd_sigaccept, kd_kbdrep, kd_font,
	kd_kbmeta, kd_unimapclr, kd_cmap): Likewise.
	* src/kd_mpers_ioctl.c (kd_unimap, kd_fontx, kd_font_op): Likewise.
	* src/kexec.c (SYS_FUNC(kexec_load), SYS_FUNC(kexec_file_load)):
	Likewise.
	* src/keyctl.c (SYS_FUNC(add_key), SYS_FUNC(request_key),
	SYS_FUNC(keyctl)): Likewise.
	* 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): Likewise.
	* src/landlock.c (SYS_FUNC(landlock_create_ruleset),
	SYS_FUNC(landlock_add_rule), SYS_FUNC(landlock_restrict_self)):
	Likewise.
	* src/ldt.c (SYS_FUNC(modify_ldt), SYS_FUNC(set_thread_area),
	SYS_FUNC(get_thread_area)): Likewise.
	* src/link.c (SYS_FUNC(link), SYS_FUNC(linkat), SYS_FUNC(unlinkat),
	SYS_FUNC(symlinkat)): Likewise.
	* src/lirc_ioctl.c (lirc_ioctl): Likewise.
	* src/listen.c (SYS_FUNC(listen)): Likewise.
	* src/listmount.c (SYS_FUNC(listmount)): Likewise.
	* src/lookup_dcookie.c (SYS_FUNC(lookup_dcookie)): Likewise.
	* src/loop.c (loop_ioctl): Likewise.
	* src/lseek.c (SYS_FUNC(lseek), SYS_FUNC(llseek)): Likewise.
	* src/lsm.c (SYS_FUNC(lsm_get_self_attr), SYS_FUNC(lsm_set_self_attr),
	SYS_FUNC(lsm_list_modules), print_args_size_flags): Likewise.
	* src/map_shadow_stack.c (SYS_FUNC(map_shadow_stack)): Likewise.
	* src/mem.c (SYS_FUNC(brk), SYS_FUNC(old_mmap),
	SYS_FUNC(old_mmap_pgoff), SYS_FUNC(munmap), SYS_FUNC(mremap),
	SYS_FUNC(madvise), SYS_FUNC(process_madvise),
	SYS_FUNC(process_mrelease), SYS_FUNC(mlockall), SYS_FUNC(msync),
	SYS_FUNC(mlock2), SYS_FUNC(mincore), SYS_FUNC(remap_file_pages),
	SYS_FUNC(mseal), SYS_FUNC(subpage_prot), print_mmap, do_mprotect):
	Likewise.
	* src/membarrier.c (SYS_FUNC(membarrier)): Likewise.
	* src/memfd_create.c (SYS_FUNC(memfd_create)): Likewise.
	* src/memfd_secret.c (SYS_FUNC(memfd_secret)): Likewise.
	* src/mknod.c (decode_mknod, SYS_FUNC(mknodat)): Likewise.
	* src/mmsghdr.c (SYS_FUNC(sendmmsg), do_recvmmsg): Likewise.
	* src/mount_setattr.c (decode_dfd_file_flags,
	decode_dfd_file_flags_attr): Likewise.
	* src/mount.c (SYS_FUNC(mount)): Likewise.
	* src/move_mount.c (SYS_FUNC(move_mount)): Likewise.
	* src/mq.c (SYS_FUNC(mq_open), SYS_FUNC(mq_notify),
	SYS_FUNC(mq_getsetattr), do_mq_timedsend, do_mq_timedreceive): Likewise.
	* src/msghdr.c (SYS_FUNC(sendmsg), SYS_FUNC(recvmsg)): Likewise.
	* src/mtd.c (mtd_ioctl): Likewise.
	* src/nbd_ioctl.c (nbd_ioctl): Likewise.
	* src/net.c (SYS_FUNC(socket), SYS_FUNC(accept4), SYS_FUNC(send),
	SYS_FUNC(sendto), SYS_FUNC(recv), SYS_FUNC(recvfrom), SYS_FUNC(pipe),
	SYS_FUNC(socketpair), SYS_FUNC(getsockopt), SYS_FUNC(setsockopt),
	decode_sockname, do_pipe, print_sockopt_fd_level_name): Likewise.
	* src/numa.c (SYS_FUNC(migrate_pages), SYS_FUNC(mbind),
	SYS_FUNC(set_mempolicy), SYS_FUNC(get_mempolicy),
	SYS_FUNC(set_mempolicy_home_node), SYS_FUNC(move_pages)): Likewise.
	* src/oldstat.c (SYS_FUNC(oldstat), SYS_FUNC(oldfstat)): Likewise.
	* src/open.c (decode_open, SYS_FUNC(openat), SYS_FUNC(openat2),
	SYS_FUNC(creat)): Likewise.
	* src/or1k_atomic.c (SYS_FUNC(or1k_atomic)): Likewise.
	* src/perf_ioctl.c (perf_ioctl_query_bpf, perf_ioctl_modify_attributes,
	perf_ioctl): Likewise.
	* src/perf.c (SYS_FUNC(perf_event_open)): Likewise.
	* src/personality.c (SYS_FUNC(personality)): Likewise.
	* src/pidfd_getfd.c (SYS_FUNC(pidfd_getfd)): Likewise.
	* src/pidfd_open.c (SYS_FUNC(pidfd_open)): Likewise.
	* src/pkeys.c (SYS_FUNC(pkey_alloc)): Likewise.
	* src/nsfs.c (nsfs_ioctl): Likewise.
	* src/poll.c (decode_poll_entering, do_poll, do_ppoll): Likewise.
	* src/prctl.c (SYS_FUNC(prctl), SYS_FUNC(arch_prctl)): Likewise.
	* src/print_sg_req_info.c (decode_sg_req_info): Likewise.
	* src/process_vm.c (SYS_FUNC(process_vm_readv),
	SYS_FUNC(process_vm_writev)): Likewise.
	* src/ptp.c (ptp_ioctl): Likewise.
	* src/ptrace.c (decode_ptrace_entering): Likewise.
	* src/quota.c (decode_cmd_data, SYS_FUNC(quotactl),
	SYS_FUNC(quotactl_fd)): Likewise.
	* src/random_ioctl.c (random_ioctl): Likewise.
	* src/readahead.c (SYS_FUNC(readahead)): Likewise.
	* src/readlink.c (decode_readlink, SYS_FUNC(readlinkat)): Likewise.
	* src/reboot.c (SYS_FUNC(reboot)): Likewise.
	* src/renameat.c (decode_renameat, SYS_FUNC(renameat2)): Likewise.
	* src/resource.c (SYS_FUNC(getrlimit), SYS_FUNC(setrlimit),
	SYS_FUNC(prlimit64), SYS_FUNC(getrusage), SYS_FUNC(osf_getrusage),
	SYS_FUNC(getpriority), SYS_FUNC(setpriority)): Likewise.
	* src/riscv.c (SYS_FUNC(riscv_flush_icache)): Likewise.
	* src/rtc.c (rtc_ioctl): Likewise.
	* src/sched.c (SYS_FUNC(sched_getscheduler),
	SYS_FUNC(sched_setscheduler), SYS_FUNC(sched_getparam),
	SYS_FUNC(sched_setparam), SYS_FUNC(sched_get_priority_min),
	SYS_FUNC(sched_setattr), SYS_FUNC(sched_getattr),
	do_sched_rr_get_interval): Likewise.
	* src/scsi.c (decode_sg_scsi_id, scsi_ioctl): Likewise.
	* src/seccomp_ioctl.c (seccomp_ioctl): Likewise.
	* src/seccomp.c (SYS_FUNC(seccomp)): Likewise.
	* src/sendfile.c (SYS_FUNC(sendfile64), SYS_FUNC(sendfile)): Likewise.
	* src/shutdown.c (SYS_FUNC(shutdown)): Likewise.
	* src/sigaltstack.c (SYS_FUNC(sigaltstack)): Likewise.
	* src/signal.c (SYS_FUNC(ssetmask), SYS_FUNC(sigaction),
	SYS_FUNC(signal), SYS_FUNC(sigsuspend), SYS_FUNC(osf_sigprocmask),
	SYS_FUNC(sigprocmask), SYS_FUNC(kill), SYS_FUNC(tkill),
	SYS_FUNC(tgkill), SYS_FUNC(sigpending), SYS_FUNC(rt_sigprocmask),
	SYS_FUNC(rt_sigaction), SYS_FUNC(rt_sigpending),
	SYS_FUNC(rt_sigsuspend), SYS_FUNC(rt_tgsigqueueinfo),
	SYS_FUNC(pidfd_send_signal), print_sigqueueinfo, do_rt_sigtimedwait):
	Likewise.
	* src/signalfd.c (do_signalfd): Likewise.
	* src/sock.c (sock_ioctl, decode_ifconf): Likewise.
	* src/socketcall.c (SYS_FUNC(socketcall)): Likewise.
	* src/sram_alloc.c (SYS_FUNC(sram_alloc)): Likewise.
	* src/stat.c (SYS_FUNC(stat), SYS_FUNC(fstat), SYS_FUNC(newfstatat)):
	Likewise.
	* src/stat64.c (SYS_FUNC(stat64), SYS_FUNC(fstat64),
	SYS_FUNC(fstatat64)): Likewise.
	* src/statfs.c (SYS_FUNC(statfs)): Likewise.
	* src/statfs64.c (SYS_FUNC(statfs64)): Likewise.
	* src/statmount.c (SYS_FUNC(statmount)): Likewise.
	* src/statx.c (SYS_FUNC(statx)): Likewise.
	* src/swapon.c (SYS_FUNC(swapon)): Likewise.
	* src/sync_file_range.c (SYS_FUNC(sync_file_range)): Likewise.
	* src/sync_file_range2.c (SYS_FUNC(sync_file_range2)): Likewise.
	* src/sysctl.c (SYS_FUNC(sysctl)): Likewise.
	* src/sysinfo.c (SYS_FUNC(sysinfo)): Likewise.
	* src/syslog.c (SYS_FUNC(syslog)): Likewise.
	* src/sysmips.c (SYS_FUNC(sysmips)): Likewise.
	* src/tee.c (tee_version, tee_open_session, tee_invoke, tee_cancel,
	tee_close_session, tee_suppl_recv, tee_suppl_send, tee_shm_alloc,
	tee_shm_register_fd, tee_shm_register): Likewise.
	* src/term.c (term_ioctl): Likewise.
	* src/time.c (SYS_FUNC(gettimeofday), SYS_FUNC(settimeofday),
	SYS_FUNC(osf_gettimeofday), SYS_FUNC(osf_settimeofday),
	SYS_FUNC(getitimer), SYS_FUNC(osf_getitimer), SYS_FUNC(setitimer),
	SYS_FUNC(osf_setitimer), SYS_FUNC(timer_create),
	SYS_FUNC(timerfd_create), SYS_FUNC(alarm), do_nanosleep, do_adjtimex,
	do_clock_settime, do_clock_gettime, do_clock_nanosleep,
	do_clock_adjtime, do_timer_settime, do_timer_gettime,
	do_timerfd_settime, do_timerfd_gettime): Likewise.
	* src/times.c (SYS_FUNC(times): Likewise.
	* src/truncate.c (SYS_FUNC(truncate), SYS_FUNC(truncate64),
	SYS_FUNC(ftruncate), SYS_FUNC(ftruncate64)): Likewise.
	* src/ubi.c (decode_UBI_IOCMKVOL, decode_UBI_IOCRSVOL,
	decode_UBI_IOCRNVOL, decode_UBI_IOCEBCH, decode_UBI_IOCATT,
	decode_UBI_IOCEBMAP, decode_UBI_IOCSETVOLPROP, ubi_ioctl): Likewise.
	* src/uid.c (SYS_FUNC(setfsuid), SYS_FUNC(setuid), SYS_FUNC(getresuid),
	SYS_FUNC(setreuid), SYS_FUNC(setresuid), SYS_FUNC(chown),
	SYS_FUNC(fchown), SYS_FUNC(setgroups), SYS_FUNC(getgroups)): Likewise.
	* src/umask.c (SYS_FUNC(umask)): Likewise.
	* src/umount.c (SYS_FUNC(umount2)): Likewise.
	* src/uname.c (SYS_FUNC(uname)): Likewise.
	* src/userfaultfd.c (SYS_FUNC(userfaultfd), uffdio_ioctl): Likewise.
	* src/ustat.c (SYS_FUNC(ustat)): Likewise.
	* src/utime.c (SYS_FUNC(utime)): Likewise.
	* src/utimes.c (SYS_FUNC(utimes), SYS_FUNC(futimesat),
	SYS_FUNC(osf_utimes), do_utimensat): Likewise.
	* src/v4l2.c (print_v4l2_capability, print_v4l2_fmtdesc,
	print_v4l2_format, print_v4l2_requestbuffers, print_v4l2_exportbuffer,
	print_v4l2_buffer, print_v4l2_buffer_time32, print_v4l2_framebuffer,
	print_v4l2_buf_type, print_v4l2_streamparm, print_v4l2_standard,
	print_v4l2_input, print_v4l2_control, print_v4l2_tuner,
	print_v4l2_queryctrl, print_v4l2_query_ext_ctrl, print_v4l2_cropcap,
	print_v4l2_crop, print_v4l2_ext_controls, print_v4l2_frmsizeenum,
	print_v4l2_frmivalenum, print_v4l2_create_buffers, v4l2_ioctl):
	Likewise.
	* src/wait.c (printwaitn, SYS_FUNC(waitid)): Likewise.
	* src/watchdog_ioctl.c (watchdog_ioctl): Likewise.
	* src/xattr.c (decode_setxattr_without_path,
	decode_getxattr_without_path, print_xattr_list,
	decode_dirfd_pathname_flags, decode_dirfd_pathname_flags_name,
	SYS_FUNC(setxattr), SYS_FUNC(fsetxattr), SYS_FUNC(getxattr),
	SYS_FUNC(fgetxattr), SYS_FUNC(listxattr), SYS_FUNC(flistxattr),
	SYS_FUNC(removexattr), SYS_FUNC(fremovexattr), SYS_FUNC(setxattrat),
	SYS_FUNC(getxattrat), SYS_FUNC(listxattrat)): Likewise.
	* src/xgetdents.c (xgetdents): Likewise.

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

	print_fields.h: add tprints_arg_name and tprints_arg_next_name.
	* src/print_fields.h (tprints_arg_name, tprints_arg_next_name): New
	inline functions.

	print_fields.h: update arg printing primitives.
	* src/print_fields.h (tprints_arg_name_end): Remove.
	(tprints_arg_name_begin): Replace with tprints_arg_name_unconditionally.
	tprints_arg_next_name_unconditionally): New inline function.
	* src/clone.c (SYS_FUNC(clone)): Update.

	src: move tprint_arg_next() invocations around.
	Where appropriate, move tprint_arg_next() invocations closer
	to the code that prints the corresponding arguments.

	ipc_msg: fix typos in comments.
	* src/ipc_msg.c (tprint_msgsnd, tprint_msgrcv): Fix typo in the comment
	about the address argument.

2025-08-03  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>

	Update ioctl entries from linux v6.16.
	* src/linux/32/ioctls_inc_align16.h: Update from linux v6.16 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/powerpc/ioctls_arch0.h: Likewise.
	* NEWS: Mention this.

2025-08-03  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>
	    Dmitry V. Levin  <ldv@strace.io>

	maint: update for linux v6.16.
	* maint/ioctls_sym.sh: Add workarounds for asm/ioctls.h and
	drm/nova_drm.h headers.

2025-07-29  Dmitry V. Levin  <ldv@strace.io>

	build: add toplevel recursive check-prerequisites rule.
	This is useful when one needs to build all test suite prerequisites
	without running the test suite itself.

	* configure.ac (AM_EXTRA_RECURSIVE_TARGETS): Add check-prerequisites.
	* tests/Makefile.am (.PHONY): Add check-prerequisites-local.
	(check-prerequisites-local): New rule.

2025-07-29  Dmitry V. Levin  <ldv@strace.io>

	tests: check legacy syscall tampering.
	Check legacy code used for system call tampering when
	PTRACE_SET_SYSCALL_INFO API was not available yet.

	* tests/legacy_syscall_tampering.test: New test.
	* tests/Makefile.am (MISC_TESTS): Add it.

2025-07-29  Dmitry V. Levin  <ldv@strace.io>

	tests/qual_fault-exit_group.test: run in errexit noglob nounset mode.
	This is going to be used by subsequent commits.

	* tests/qual_fault-exit_group.test: Run in errexit noglob nounset mode.

2025-07-29  Dmitry V. Levin  <ldv@strace.io>

	tests/init.sh: allow this script to be loaded more than once.
	* tests/init-once.sh: Rename from tests/init.sh.
	* tests/init.sh: New script, a thin wrapper around tests/init.sh
	with a guard against multiple loading.
	* tests/Makefile.am (check_SCRIPTS): Add init.sh.

	disable_ptrace_set_syscall_info: new helper program.
	* src/disable_ptrace_set_syscall_info.c: New file.
	* src/Makefile.am (noinst_PROGRAMS): Add
	disable_ptrace_set_syscall_info.
	(disable_ptrace_set_syscall_info_LDADD): New variable.
	* src/.gitignore: Add /disable_ptrace_set_syscall_info.

2025-07-29  Dmitry V. Levin  <ldv@strace.io>

	Introduce PTRACE_SET_SYSCALL_INFO support.
	When PTRACE_SET_SYSCALL_INFO API works, use it instead of traditional
	arch_set_{scno,error,success} API.

	* src/syscall.c (set_scno): New function declaration.
	(tamper_with_syscall_entering): Use set_scno instead of arch_set_scno.
	(set_scno): New function.
	(set_error, set_success): Use PTRACE_SET_SYSCALL_INFO API when
	available.
	* NEWS: Mention this change.

2025-07-29  Dmitry V. Levin  <ldv@strace.io>

	Check whether PTRACE_SET_SYSCALL_INFO is supported by the kernel.
	The result of this check is going to be used by subsequent commits.

	* src/ptrace_syscall_info.c (ptrace_set_syscall_info_supported): New
	variable.
	[HAVE_FORK] (do_test_ptrace_set_syscall_info): New function.
	(test_ptrace_set_syscall_info): Likewise.
	(test_ptrace_get_syscall_info): Check ptrace_set_syscall_info_supported.
	* src/ptrace_syscall_info.h (ptrace_set_syscall_info_supported,
	test_ptrace_set_syscall_info): Declare.
	* src/filter_qualify.c (inject_set): Remove static keyword.
	* src/number_set.h (inject_set): Declare.
	* src/strace.c (init): Use test_ptrace_set_syscall_info.

2025-07-29  Dmitry V. Levin  <ldv@strace.io>

	ptrace_syscall_info: prepare runtime test for PTRACE_SET_SYSCALL_INFO.
	* src/ptrace_syscall_info.c [HAVE_FORK] (dummy_syscall_args): New
	static array.
	[HAVE_FORK] (struct si_entry, struct si_exit): New types.
	[HAVE_FORK] (check_psi_none, check_psi_entry, check_psi_exit,
	do_test_ptrace_get_syscall_info): New functions.
	(test_ptrace_get_syscall_info) [HAVE_FORK]: Use
	do_test_ptrace_get_syscall_info.

2025-07-28  Dmitry V. Levin  <ldv@strace.io>

	bundled: update linux UAPI headers to v6.16.
	* bundled/linux/include/uapi/linux/ethtool_netlink.h: Update to
	headers_install'ed Linux kernel v6.16.
	* bundled/linux/include/uapi/linux/ethtool_netlink_generated.h: Likewise.
	* bundled/linux/include/uapi/linux/mptcp_pm.h: Likewise.
	* bundled/linux/include/uapi/linux/netfilter/nf_tables.h: Likewise.
	* bundled/linux/include/uapi/linux/netfilter/nfnetlink.h: Likewise.
	* bundled/linux/include/uapi/linux/vm_sockets.h: Likewise.

2025-07-28  Dmitry V. Levin  <ldv@strace.io>

	Revert "xlat: update NFT_MSG_* constants"
	The Linux kernel commit v6.16-rc7~37^2~13^2~1 reverted the change
	introduced earlier by Linux kernel commit v6.16-rc1~132^2~30^2~1.

	This reverts commit 4a80f35bda083abdd4f8be15681e24cc7d7c40c4.

	* src/xlat/nf_nftables_msg_types.in (NFT_MSG_NEWDEV, NFT_MSG_DELDEV):
	Remove.
	* src/netlink.c (decode_nlmsg_flags_netfilter): Remove them.

2025-07-27  Dmitry V. Levin  <ldv@strace.io>

	Fix a few erroneous uses of tprint_arg_next in place of tprint_struct_next
	* src/landlock.c (print_landlock_ruleset_attr): Replace
	tprint_arg_next calls with tprint_struct_next when printing struct
	landlock_ruleset_attr.
	* src/ptp.c (ptp_ioctl): Replace tprint_arg_next calls with
	tprint_struct_next when printing struct ptp_pin_desc.
	* src/sock.c (sock_ioctl): Replace tprint_arg_next calls with
	tprint_struct_next when printing struct_ifreq.

2025-07-20  Dmitry V. Levin  <ldv@strace.io>

	tests: check VIDIOC_EXPBUF decoding on exiting syscall.
	* tests/ioctl_v4l2-success.c: Include "kernel_fcntl.h".
	(main): Check VIDIOC_EXPBUF decoding.

2025-07-07  Barnabás Pőcze  <pobrn@protonmail.com>

	v4l2: decode `VIDIOC_EXPBUF`
	Decode the `VIDIOC_EXPBUF` v4l2 ioctl as follows:

	  ioctl(17</dev/video10>,
	        VIDIOC_EXPBUF,
	        {type=V4L2_BUF_TYPE_VIDEO_CAPTURE, index=2, plane=0, flags=O_RDWR|O_CLOEXEC}
	          => {fd=25</dmabuf:>}) = 0 <0.000091>

	Every current field is supported, the `fd` field is decoded on return.

	* src/v4l2.c: Decode `VIDIOC_EXPBUF`.
	* tests/ioctl_v4l2.c: Remove `VIDIOC_EXPBUF` from list of unsupported
	  ioctls, and add some `VIDIOC_EXPBUF` tests.

2025-07-02  Dmitry V. Levin  <ldv@strace.io>

	strace-log-merge.1: improve grammar, clarity and consistency.
	This change is prepared using valuable hints from the Gemini AI
	that was prompted to fix the grammar and improve clarity.

2025-07-01  Dmitry V. Levin  <ldv@strace.io>

	strace.1: improve grammar, clarity and consistency.
	This change is prepared using valuable hints from the Gemini AI
	that was prompted to fix the grammar and improve clarity.

2025-06-24  Dmitry V. Levin  <ldv@strace.io>

	xlat/btrfs_dev_stats_values.in: remove #val_type.
	* src/xlat/btrfs_dev_stats_values.in (#val_type): Remove, all constants
	are defined in enum btrfs_dev_stat_values which is a regular enum.

2025-06-23  Dmitry V. Levin  <ldv@strace.io>

	xlat: regenerate some xlat files using maint/enum2xlat.sh.
	* src/xlat/af_tipc_scope.in: Regenerate using maint/enum2xlat.sh.
	* src/xlat/crypto_nl_attrs.in: Likewise.
	* src/xlat/dcb_commands.in: Likewise.
	* src/xlat/genl_thermal_cmd.in: Likewise.
	* src/xlat/gpio_v2_line_attr_ids.in: Likewise.
	* src/xlat/gpio_v2_line_flags.in: Likewise.
	* src/xlat/in6_addr_gen_mode.in: Likewise.
	* src/xlat/nf_acct_msg_types.in: Likewise.
	* src/xlat/nf_cthelper_msg_types.in: Likewise.
	* src/xlat/nf_ctnetlink_exp_msg_types.in: Likewise.
	* src/xlat/nf_ctnetlink_msg_types.in: Likewise.
	* src/xlat/nf_cttimeout_msg_types.in: Likewise.
	* src/xlat/nf_hook_msg_types.in: Likewise.
	* src/xlat/nf_ipset_msg_types.in: Likewise.
	* src/xlat/nf_osf_msg_types.in: Likewise.
	* src/xlat/nf_queue_msg_types.in: Likewise.
	* src/xlat/nf_tables_msg_types.in: Likewise.
	* src/xlat/nf_ulog_msg_types.in: Likewise.
	* src/xlat/nl_attr_type.in: Likewise.
	* src/xlat/nl_policy_type_attr.in: Likewise.
	* src/xlat/nlmsgerr_attrs.in: Likewise.
	* src/xlat/routing_scopes.in: Likewise.
	* src/xlat/routing_table_ids.in: Likewise.
	* src/xlat/rtnl_dcb_attrs.in: Likewise.
	* src/xlat/rtnl_ifla_br_boolopts.in: Likewise.
	* src/xlat/rtnl_route_attrs.in: Likewise.

	xlat: update IPSET_CMD_* constants.
	* src/xlat/nf_ipset_msg_types.in (IPSET_CMD_GET_BYNAME,
	IPSET_CMD_GET_BYINDEX): New constants introduced by Linux kernel
	commit v5.0-rc1~129^2~14^2~34^2.
	* NEWS: Mention this change.

	xlat: update CRYPTOCFGA_STAT_* constants.
	* src/xlat/crypto_nl_attrs.in (CRYPTOCFGA_STAT_LARVAL,
	CRYPTOCFGA_STAT_HASH, CRYPTOCFGA_STAT_BLKCIPHER, CRYPTOCFGA_STAT_AEAD,
	CRYPTOCFGA_STAT_COMPRESS, CRYPTOCFGA_STAT_RNG, CRYPTOCFGA_STAT_CIPHER,
	CRYPTOCFGA_STAT_AKCIPHER, CRYPTOCFGA_STAT_KPP, CRYPTOCFGA_STAT_ACOMP):
	New constants introduced by Linux kernel commit v4.20-rc1~116^2~40.
	* NEWS: Mention this change.

	xlat: update THERMAL_GENL_CMD_* constants.
	* src/xlat/genl_thermal_cmd.in (THERMAL_GENL_CMD_THRESHOLD_GET,
	THERMAL_GENL_CMD_THRESHOLD_ADD, THERMAL_GENL_CMD_THRESHOLD_DELETE,
	THERMAL_GENL_CMD_THRESHOLD_FLUSH): New constants introduced by
	Linux kernel commit v6.13-rc1~193^2~3^2~16.
	* tests/netlink_nlctrl.c (test_nla_ops_family): Update expected output.
	* NEWS: Mention this change.

2025-06-22  Dmitry V. Levin  <ldv@strace.io>

	maint: add update-xlat.sh.
	* maint/update-xlat.sh: New helper script for updating xlat files
	generated earlier by maint/enum2xlat.sh.

2025-06-21  Dmitry V. Levin  <ldv@strace.io>

	maint: add enum2xlat.sh.
	* maint/enum2xlat.sh: New helper script for generating xlat files
	from enum definitions found in bundled kernel headers.

2025-06-20  Dmitry V. Levin  <ldv@strace.io>

	rtnl_route: implement decoding of RTA_NH_ID and RTA_FLOWLABEL.
	* src/xlat/rtnl_route_attrs.in (RTA_FLOWLABEL): New constant introduced
	by Linux kernel commit v6.14-rc1~162^2~186^2~3.
	* src/rtnl_route.c (rtmsg_nla_decoders): Handle RTA_NH_ID and
	RTA_FLOWLABEL.
	* NEWS: Mention this change.

2025-06-20  Dmitry V. Levin  <ldv@strace.io>

	netlink: rename nf_nftables_msg_types to nf_tables_msg_types.
	Change the name of the table to match the name of the enum defined
	in include/uapi/linux/netfilter/nf_tables.h file.

	* src/xlat/nf_nftables_msg_types.in: Rename
	to src/xlat/nf_tables_msg_types.in.
	* src/netlink.c: Replace nf_nftables_msg_types with nf_tables_msg_types.

2025-06-19  Dmitry V. Levin  <ldv@strace.io>

	util: use ARRSZ_PAIR macro.
	* src/util.c (printeventfd): Apply the following sed expression:
	  s/\<\([[:alpha:]][[:alnum:]_]*\), ARRAY_SIZE(\1)/ARRSZ_PAIR(\1)/

	xlat: update V4L2_* constants.
	* src/xlat/v4l2_meta_fmts.in (V4L2_META_FMT_RPI_FE_CFG,
	V4L2_META_FMT_RPI_FE_STATS): New constants introduced by Linux kernel
	commit v6.13-rc1~149^2~133.
	(V4L2_META_FMT_C3ISP_PARAMS, V4L2_META_FMT_C3ISP_STATS): New constants
	introduced by Linux kernel commit v6.16-rc1~145^2~22.
	* src/xlat/v4l2_pix_fmts.in (V4L2_PIX_FMT_Y16I): New constant introduced
