2024-07-21  Dmitry V. Levin  <ldv@strace.io>

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

2024-07-19  Dmitry V. Levin  <ldv@strace.io>

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

2024-07-19  Jan Macku  <jamacku@redhat.com>

	ci: enable Packit rpm build test.
	Documentation: https://packit.dev/docs

2024-07-17  Eugene Syromyatnikov  <evgsyr@gmail.com>

	prctl: PR_PPC_[GS]ET_DEXCR.
	Introduced by Linux commit v6.10-rc1~129^2~41.

	* src/xlat/pr_ppc_dexcr_aspects.in: New xlat.
	* src/xlat/pr_ppc_dexcr_ctrl_flags.in: Likewise.
	* src/prctl.c: Include "xlat/pr_ppc_dexcr_aspects.h"
	and "xlat/pr_ppc_dexcr_ctrl_flags.h".
	(SYS_FUNC(prctl)) <case PR_PPC_GET_DEXCR, case PR_PPC_SET_DEXCR>: New
	option decoders.
	* tests/.gitignore: Add prctl-ppc-dexcr, prctl-ppc-dexcr-Xabbrev,
	prctl-ppc-dexcr-Xraw, prctl-ppc-dexcr-Xverbose,
	prctl-ppc-dexcr-success, prctl-ppc-dexcr-success-Xabbrev,
	prctl-ppc-dexcr-success-Xraw,
	and prctl-ppc-dexcr-success-Xverbose.
	* tests/Makefile.am (check_PROGRAMS): Add prctl-ppc-dexcr-success,
	prctl-ppc-dexcr-success-Xabbrev, prctl-ppc-dexcr-success-Xraw,
	and prctl-ppc-dexcr-success-Xverbose.
	* tests/pure_executables.list: Add prctl-ppc-dexcr,
	prctl-ppc-dexcr-Xabbrev, prctl-ppc-dexcr-Xraw,
	and prctl-ppc-dexcr-Xverbose.
	* tests/gen_tests.in (prctl-ppc-dexcr, prctl-ppc-dexcr-Xabbrev,
	prctl-ppc-dexcr-Xraw, prctl-ppc-dexcr-Xverbose,
	prctl-ppc-dexcr-success, prctl-ppc-dexcr-success-Xabbrev,
	prctl-ppc-dexcr-success-Xraw, prctl-ppc-dexcr-success-Xverbose):
	New tests.
	* tests/prctl-ppc-dexcr.c: New file.
	* tests/prctl-ppc-dexcr-Xabbrev.c: Likewise.
	* tests/prctl-ppc-dexcr-Xraw.c: Likewise.
	* tests/prctl-ppc-dexcr-Xverbose.c: Likewise.
	* tests/prctl-ppc-dexcr-success-Xabbrev.c: Likewise.
	* tests/prctl-ppc-dexcr-success-Xraw.c: Likewise.
	* tests/prctl-ppc-dexcr-success-Xverbose.c: Likewise.
	* tests/prctl-ppc-dexcr-success.c: Likewise.

2024-07-17  Eugene Syromyatnikov  <evgsyr@gmail.com>

	prctl: PR_RISCV_SET_ICACHE_FLUSH_CTX.
	Implemented by Linux commit v6.10-rc1~52^2~7^2~2.

	* src/xlat/pr_riscv_icache_flush_ctxes.in: New xlat.
	* src/xlat/pr_riscv_icache_flush_scopes.in: Likewise.
	* src/prctl.c (SYS_FUNC(prctl)) <case PR_RISCV_SET_ICACHE_FLUSH_CTX>:
	New option decoder.
	* tests/.gitignore: Add prctl-riscv-icache-flush-ctx,
	prctl-riscv-icache-flush-ctx-Xabbrev, prctl-riscv-icache-flush-ctx-Xraw,
	and prctl-riscv-icache-flush-ctx-Xverbose.
	* tests/pure_executables.list: Likewise.
	* tests/gen_tests.in (prctl-riscv-icache-flush-ctx,
	prctl-riscv-icache-flush-ctx-Xabbrev, prctl-riscv-icache-flush-ctx-Xraw,
	prctl-riscv-icache-flush-ctx-Xverbose): New tests.
	* tests/tests.h (struct strval_klong): New type definition.
	* tests/prctl-riscv-icache-flush-ctx.c: New file.
	* tests/prctl-riscv-icache-flush-ctx-Xabbrev.c: Likewise.
	* tests/prctl-riscv-icache-flush-ctx-Xraw.c: Likewise.
	* tests/prctl-riscv-icache-flush-ctx-Xverbose.c: Likewise.

2024-07-17  Eugene Syromyatnikov  <evgsyr@gmail.com>

	prctl: Implement PR_RISCV_V_[GS]ET_CONTROL option decoding.
	Introduced by Linux commit v6.5-rc1~120^2~17^2~6.

	* src/xlat/pr_riscv_v_inherit.in: New xlat.
	* src/xlat/pr_riscv_v_states.in: Likewise.
	* src/prctl.c: Include "xlat/pr_riscv_v_inherit.h"
	and "xlat/pr_riscv_v_states.h".
	(sprint_riscv_v_ctrl_val): New function.
	(SYS_FUNC(prctl)) <case PR_RISCV_V_SET_CONTROL,
	case PR_RISCV_V_GET_CONTROL>: Implement option decoders.
	* tests/.gitignore: Add prctl-riscv-v-ctrl, prctl-riscv-v-ctrl-Xabbrev,
	prctl-riscv-v-ctrl-Xraw, prctl-riscv-v-ctrl-Xverbose,
	prctl-riscv-v-ctrl-success, prctl-riscv-v-ctrl-success-Xabbrev,
	prctl-riscv-v-ctrl-success-Xraw,
	and prctl-riscv-v-ctrl-success-Xverbose.
	* tests/Makefile.am (check_PROGRAMS): Add prctl-riscv-v-ctrl-success,
	prctl-riscv-v-ctrl-success-Xabbrev, prctl-riscv-v-ctrl-success-Xraw,
	and prctl-riscv-v-ctrl-success-Xverbose.
	* tests/pure_executables.list: Add prctl-riscv-v-ctrl,
	prctl-riscv-v-ctrl-Xabbrev, prctl-riscv-v-ctrl-Xraw,
	and prctl-riscv-v-ctrl-Xverbose.
	* tests/gen_tests.in (prctl-riscv-v-ctrl, prctl-riscv-v-ctrl-Xabbrev,
	prctl-riscv-v-ctrl-Xraw, prctl-riscv-v-ctrl-Xverbose,
	prctl-riscv-v-ctrl-success, prctl-riscv-v-ctrl-success-Xabbrev,
	prctl-riscv-v-ctrl-success-Xraw, prctl-riscv-v-ctrl-success-Xverbose):
	New tests.
	* tests/prctl-riscv-v-ctrl.c: New file.
	* tests/prctl-riscv-v-ctrl-Xabbrev.c: Likewise.
	* tests/prctl-riscv-v-ctrl-Xraw.c: Likewise.
	* tests/prctl-riscv-v-ctrl-Xverbose.c: Likewise.
	* tests/prctl-riscv-v-ctrl-success-Xabbrev.c: Likewise.
	* tests/prctl-riscv-v-ctrl-success-Xraw.c: Likewise.
	* tests/prctl-riscv-v-ctrl-success-Xverbose.c: Likewise.
	* tests/prctl-riscv-v-ctrl-success.c: Likewise.
	* NEWS: Mention it.

2024-07-17  Eugene Syromyatnikov  <evgsyr@gmail.com>

	prctl: organise the prctl option switch.
	It seems to be used to be kept in lexicographical order,
	but over the time the new options were added to various places,
	to the point it is not clear where to add it them now.   Let's put
	groups of common option handlers at the top (and the one
	that corresponds the default handling at the bottom), and sort the rest
	in the option number order, so the new options can be added at the end
	without a doubt.

	* src/prctl.c (SYS_FUNC(prctl)) <switch>: Reorder.

2024-07-17  Eugene Syromyatnikov  <evgsyr@gmail.com>

	"Implement" PR_[GS]ET_MEMORY_MERGE prctl options.
	As the decoding of these options does not discernibly differ
	from the default case, this patch only adds the option names
	to the option decoding switch and adds the checks to the relevant test.

	* src/prctl.c (SYS_FUNC(prctl)) <case PR_SET_MEMORY_MERGE,
	case PR_GET_MEMORY_MERGE>: New switch cases.
	* tests/prctl-no-args.c (main) <options_checking>: Add
	PR_SET_MEMORY_MERGE and PR_GET_MEMORY_MERGE.

2024-07-17  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: expand prctl-no-args test a bit.
	Amend the test with checking of prctl operations that don't have
	arguments with any decodable semantics, but perform argument checking
	for the sake of possible future expandability (thus prompting printing
	of those arguments by strace), as well as unknown operations (that have
	the same treatment).

	* prctl-no-args-Xabbrev.c: New file.
	* prctl-no-args-Xraw.c: Likewise.
	* prctl-no-args-Xverbose.c: Likewise.
	* prctl-no-args-success-Xabbrev.c: Likewise.
	* prctl-no-args-success-Xraw.c: Likewise.
	* prctl-no-args-success-Xverbose.c: Likewise.
	* prctl-no-args-success.c: Likewise.
	* .gitignore: Add prctl-no-args-Xabbrev, prctl-no-args-Xraw,
	prctl-no-args-Xverbose, prctl-no-args-success,
	prctl-no-args-success-Xabbrev, prctl-no-args-success-Xraw,
	and prctl-no-args-success-Xverbose.
	* Makefile.am (check_PROGRAMS): Add prctl-no-args-success,
	prctl-no-args-success-Xabbrev, prctl-no-args-success-Xraw,
	and prctl-no-args-success-Xverbose.
	* gen_tests.in (prctl-no-args-Xabbrev, prctl-no-args-Xraw,
	prctl-no-args-Xverbose, prctl-no-args-success,
	prctl-no-args-success-Xabbrev, prctl-no-args-success-Xraw,
	prctl-no-args-success-Xverbose): New tests.
	* pure_executables.list: Add prctl-no-args-Xabbrev, prctl-no-args-Xraw,
	and prctl-no-args-Xverbose.
	* prctl-no-args.c: Include <stdlib.h>.
	(INJ_STR): New macro.
	(main): Add argc and argv arguments.
	(main) <options> Change the type to static const struct strval32.
	(main) <options_checking, options_unknown>: New constants.
	(main) <rc>: Move the variable declaration outside the loop body.
	(main): Add the prctl inject boilerplate, checks for options that
	do not print arguments, and checks for options without decodable
	arguments that print them.

2024-07-17  Sergei Trofimovich  <slyich@gmail.com>

	print_utils.h: initialize `hex_chars` as an array, not via string.
	`gcc-15` added a new warning in https://gcc.gnu.org/PR115185:

	    print_utils.h:16:35: error: initializer-string for array of 'char' is too long [-Werror=unterminated-string-initialization]
	       16 | static const char hex_chars[16] = "0123456789abcdef";
	          |                                   ^~~~~~~~~~~~~~~~~~

	`strace` does not need to store '\0'. We could either initialize the
	arrays with individual bytes or allocate extra byte for null.

	This change initializes the array bytewise.

2024-07-17  Dmitry V. Levin  <ldv@strace.io>

	netlink_nlctrl: implement family-specific CTRL_ATTR_OP_ID fallback.
	* src/netlink_nlctrl.c (family_names): Add fallback strings.
	(decode_nla_ctrl_attr_op_id): Choose dflt depending on the context.
	* tests/netlink_nlctrl.c (test_nla_ops_family): Check it.

	Suggested-by: Masatake YAMATO <yamato@redhat.com>

2024-07-16  Masatake YAMATO  <yamato@redhat.com>

	netlink_nlctrl: use nlmsg_type as a key for looking up a decoder.
	The original implementation uses a string of family as a key for
	looking up a decoder.  With caching the result of
	genl_families_xlat(tcp) in src/netlink_generic.c, we can use an
	integer (nlmsg_type) as a key.

	* src/netlink_generic.c (genl_decoders): New array moved from
	a function static array defined in lookup_genl_decoder().
	(initialize_genl_decoders): New function.
	(lookup_genl_decoder): Use uint16_t value as a key instead of
	a C string.
	(decode_netlink_generic): Call initialize_genl_decoders().
	Use nlmsg_type as a key for looking up the decoder.

2024-07-16  Masatake YAMATO  <yamato@redhat.com>

	xlat: add xrlookup, a reverse version of xlookup.
	This way one can obtain a key for a value from a xlat.

	* src/defs.h (xrlookup): New declaration.
	* src/xlat.c (xrlookup): New function.

2024-07-16  Dmitry V. Levin  <ldv@strace.io>

	netlink_nlctrl: implement "thermal" family CTRL_ATTR_OP_ID decoding.
	* bundled/linux/include/uapi/linux/thermal.h: New file.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/thermal.h.
	* src/xlat/genl_thermal_cmd.in: New file.
	* src/netlink_nlctrl.c: Include <linux/thermal.h>
	and "xlat/genl_thermal_cmd.h".
	(family_names): Add THERMAL_GENL_FAMILY_NAME.
	* tests/netlink_nlctrl.c: Include <linux/thermal.h>.
	(test_nla_ops_family): Test THERMAL_GENL_FAMILY_NAME.

	netlink_nlctrl: implement "nl80211" family CTRL_ATTR_OP_ID decoding.
	* bundled/linux/include/uapi/linux/nl80211.h: New file.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/nl80211.h.
	* src/xlat/genl_nl80211_cmd.in: New file.
	* src/netlink_nlctrl.c: Include <linux/nl80211.h>
	and "xlat/genl_nl80211_cmd.h".
	(family_names): Add NL80211_GENL_NAME.
	* tests/netlink_nlctrl.c: Include <linux/nl80211.h>.
	(test_nla_ops_family): Test NL80211_GENL_NAME.

	netlink_nlctrl: implement "netdev" family CTRL_ATTR_OP_ID decoding.
	* bundled/linux/include/uapi/linux/netdev.h: New file.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/netdev.h.
	* src/xlat/genl_netdev_cmd.in: New file.
	* src/netlink_nlctrl.c: Include <linux/netdev.h>
	and "xlat/genl_netdev_cmd.h".
	(family_names): Add NETDEV_GENL_NAME.
	* tests/netlink_nlctrl.c: Include <linux/netdev.h>.
	(test_nla_ops_family): Test NETDEV_GENL_NAME.

2024-07-15  Dmitry V. Levin  <ldv@strace.io>

	netlink_nlctrl: implement "tcp_metrics" family CTRL_ATTR_OP_ID decoding.
	* bundled/linux/include/uapi/linux/tcp_metrics.h: New file.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/tcp_metrics.h.
	* src/xlat/genl_tcp_metrics_cmd.in: New file.
	* src/netlink_nlctrl.c: Include <linux/tcp_metrics.h>
	and "xlat/genl_tcp_metrics_cmd.h".
	(family_names): Add TCP_METRICS_GENL_NAME.
	* tests/netlink_nlctrl.c: Include <linux/tcp_metrics.h>.
	(test_nla_ops_family): Test TCP_METRICS_GENL_NAME.

	netlink_nlctrl: implement "mptcp_pm" family CTRL_ATTR_OP_ID decoding.
	* src/xlat/genl_mptcp_pm_cmd.in: New file.
	* src/netlink_nlctrl.c: Include <linux/mptcp_pm.h>
	and "xlat/genl_mptcp_pm_cmd.h".
	(family_names): Add MPTCP_PM_NAME.
	* tests/netlink_nlctrl.c: Include <linux/mptcp_pm.h>.
	(test_nla_ops_family): Test MPTCP_PM_NAME.

	netlink_nlctrl: implement "TASKSTATS" family CTRL_ATTR_OP_ID decoding.
	* bundled/linux/include/uapi/linux/cgroupstats.h: New file.
	* bundled/linux/include/uapi/linux/taskstats.h: Likewise.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/cgroupstats.h and
	linux/include/uapi/linux/taskstats.h.
	* src/xlat/genl_taskstats_cmd.in: New file.
	* src/netlink_nlctrl.c: Include <linux/cgroupstats.h>
	and "xlat/genl_taskstats_cmd.h".
	(family_names): Add TASKSTATS_GENL_NAME.
	* tests/netlink_nlctrl.c: Include <linux/cgroupstats.h>.
	(test_nla_ops_family): Test TASKSTATS_GENL_NAME.

	netlink_nlctrl: implement "SEG6" family CTRL_ATTR_OP_ID decoding.
	* bundled/linux/include/uapi/linux/seg6_genl.h: New file.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/seg6_genl.h.
	* src/xlat/genl_seg6_cmd.in: New file.
	* src/netlink_nlctrl.c: Include <linux/seg6_genl.h>
	and "xlat/genl_seg6_cmd.h".
	(family_names): Add SEG6_GENL_NAME.
	* tests/netlink_nlctrl.c: Include <linux/seg6_genl.h>.
	(test_nla_ops_family): Test SEG6_GENL_NAME.

	netlink_nlctrl: implement "IOAM6" family CTRL_ATTR_OP_ID decoding.
	* bundled/linux/include/uapi/linux/ioam6_genl.h: New file.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/ioam6_genl.h.
	* src/xlat/genl_ioam6_cmd.in: New file.
	* src/netlink_nlctrl.c: Include <linux/ioam6_genl.h>,
	and "xlat/genl_ioam6_cmd.h".
	(family_names): Add IOAM6_GENL_NAME.
	* tests/netlink_nlctrl.c: Include <linux/ioam6_genl.h>.
	(test_nla_ops_family): Test IOAM6_GENL_NAME.

2024-07-14  Dmitry V. Levin  <ldv@strace.io>

	netlink_nlctrl: implement "ethtool" family CTRL_ATTR_OP_ID decoding.
	* bundled/linux/include/uapi/linux/ethtool.h: New file.
	* bundled/linux/include/uapi/linux/ethtool_netlink.h: Likewise.
	* bundled/linux/include/uapi/linux/if_ether.h: Likewise.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/ethtool.h,
	linux/include/uapi/linux/ethtool_netlink.h, and
	linux/include/uapi/linux/if_ether.h.
	* src/xlat/genl_ethtool_msg_send.in: New file.
	* src/xlat/genl_ethtool_msg_recv.in: Likewise.
	* src/netlink_nlctrl.c: Include <linux/ethtool_netlink.h>,
	"xlat/genl_ethtool_msg_send.h", and "xlat/genl_ethtool_msg_recv.h".
	(family_names): Add ETHTOOL_GENL_NAME.
	* tests/netlink_nlctrl.c: Include <linux/ethtool_netlink.h>.
	(test_nla_ops_family): Test ETHTOOL_GENL_NAME.

	netlink_nlctrl: implement "devlink" family CTRL_ATTR_OP_ID decoding.
	* bundled/linux/include/uapi/linux/devlink.h: New file.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/devlink.h.
	* src/xlat/genl_devlink_cmd.in: New file.
	* src/netlink_nlctrl.c: Include <linux/devlink.h>
	and "xlat/genl_devlink_cmd.h".
	(family_names): Add DEVLINK_GENL_NAME.
	* tests/netlink_nlctrl.c: Include <linux/devlink.h>.
	(test_nla_ops_family): New function.
	(main): Use it.

2024-07-13  Dmitry V. Levin  <ldv@strace.io>

	netlink_nlctrl: hook up context-dependent CTRL_ATTR_OP_ID decoding.
	Unlike traditional netlink protocols, nlctrl uses CTRL_ATTR_FAMILY_NAME
	attribute to specify the type of subsequent CTRL_ATTR_OP_ID attributes.

	* src/netlink_nlctrl.c: (family_names): New array.
	(decode_nla_ctrl_attr_family_name): New function.
	(decode_nla_ctrl_attr_op_id): Choose xlat depending on the context.
	(decode_nlctrl): Use it.

2024-07-12  Dmitry V. Levin  <ldv@strace.io>

	nlattr: introduce decode_nlattr_notype.
	* src/nlattr.h (decode_nlattr_notype): New function, a thin wrapper
	around decode_nlattr.
	* src/nlattr.c (decode_nlattr_with_data): Extend with size == -1U with
	the meaning of size == 0 and the type is being passed via opaque_data.
	* src/netlink_nlctrl.c (decode_nla_ctrl_attr_ops,
	decode_nla_ctrl_attr_mcast_groups, decode_nla_ctrl_attr_policy_item,
	decode_nla_ctrl_attr_policy, decode_nla_ctrl_attr_op_policy): Use
	decode_nlattr_notype instead of decode_nlattr.

2024-07-11  Dmitry V. Levin  <ldv@strace.io>

	netlink_nlctrl: implement CTRL_ATTR_POLICY decoding.
	* src/xlat/nl_attr_type.in: New file.
	* src/xlat/nl_policy_type_attr.in: Likewise.
	* src/netlink_nlctrl.c: Include "xlat/nl_attr_type.h"
	and "xlat/nl_policy_type_attr.h".
	(decode_nla_policy_type_attr_type, decode_nla_ctrl_attr_policy_attr,
	decode_nla_ctrl_attr_policy_item, decode_nla_ctrl_attr_policy):
	New functions.
	(ctrl_attr_decoders): Use decode_nla_ctrl_attr_policy.
	* tests/netlink_nlctrl.c (test_nla_policy): New function.
	(main): Use it.
	* NEWS: Mention NETLINK_GENERIC nlctrl protocol decoding.

2024-07-10  Dmitry V. Levin  <ldv@strace.io>

	netlink_nlctrl: implement CTRL_ATTR_OP_POLICY decoding.
	* src/xlat/genl_ctrl_attr_policy.in: New file.
	* src/netlink_nlctrl.c: Include "xlat/genl_ctrl_attr_policy.h".
	(decode_nla_ctrl_attr_op_policy_item,
	decode_nla_ctrl_attr_op_policy): New functions.
	(decode_nlctrl): Use decode_nla_ctrl_attr_op_policy.
	* tests/netlink_nlctrl.c (test_nla_op_policy): New function.
	(main): Use it.

2024-07-09  Dmitry V. Levin  <ldv@strace.io>

	netlink_nlctrl: implement CTRL_ATTR_MCAST_GROUPS decoding.
	* src/xlat/genl_ctrl_attr_mcast_grp.in: New file.
	* src/netlink_nlctrl.c: Include "xlat/genl_ctrl_attr_mcast_grp.h".
	(decode_nla_ctrl_attr_mcast_group_item,
	decode_nla_ctrl_attr_mcast_groups): New functions.
	(decode_nlctrl): Use decode_nla_ctrl_attr_mcast_groups.
	* tests/netlink_nlctrl.c (test_nla_mcast): New function.
	(main): Use it.

2024-07-08  Dmitry V. Levin  <ldv@strace.io>

	netlink_nlctrl: implement CTRL_ATTR_OPS decoding.
	* src/xlat/genl_ctrl_attr_op.in: New file.
	* src/xlat/genl_ctrl_attr_op_flags.in: Likewise.
	* src/netlink_nlctrl.c: Include "xlat/genl_ctrl_attr_op.h"
	and "xlat/genl_ctrl_attr_op_flags.h".
	(decode_nla_ctrl_attr_op_id, decode_nla_ctrl_attr_op_flags,
	decode_nla_ctrl_attr_op_item, decode_nla_ctrl_attr_ops): New functions.
	(decode_nlctrl): Use decode_nla_ctrl_attr_ops.
	* tests/netlink_nlctrl.c (test_nla_ops): New function.
	(main): Use it.

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

	nlattr: use DECL_NLA macro in definitions of decode_nla_* functions.

2024-07-06  Dmitry V. Levin  <ldv@strace.io>

	nlattr: remove "extern" storage class from DECL_NLA macro.
	This would allow to use DECL_NLA in function definitions.

	* src/nlattr.h (DECL_NLA): Remove "extern" storage class, add const
	qualifier to arguments.

2024-07-05  Dmitry V. Levin  <ldv@strace.io>

	nlattr: add const qualifier to decode_nla_{xval,flags} arguments.
	* src/nlattr.c (decode_nla_xval, decode_nla_flags): Add const
	qualifier to the "len" argument.

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

	netlink_nlctrl: implement basic CTRL_ATTR_* decoding.
	* src/xlat/genl_ctrl_attr.in: New file.
	* src/netlink_nlctrl.c: Include "xlat/genl_ctrl_attr.h".
	(decode_nlctrl): Add a nla_decoder_t array and pass it to decode_nlattr.
	* tests/netlink_nlctrl.c (test_nla): Rename to test_nla_unknown.
	(test_nla_x16, test_nla_u32, test_nla_str): New functions.
	(main): Use them.

2024-07-03  Dmitry V. Levin  <ldv@strace.io>

	netlink_generic: hook up a nlctrl decoder.
	* src/netlink_nlctrl.c: New file.
	* src/Makefile.am (libstrace_a_SOURCES): Add netlink_nlctrl.c.
	* src/xlat/genl_ctrl_cmd.in: New file.
	* src/netlink_generic.h (decode_nlctrl): New prototype.
	* src/netlink_generic.c (netlink_generic_decoder_t): New type.
	(lookup_genl_decoder): New function.
	(decode_netlink_generic): Use it.
	* tests/netlink_nlctrl.c: Include "xmalloc.h", "test_netlink.h",
	and "test_nlattr.h".
	(test_nlmsg_type, test_sendmsg_nlmsg_type): Remove.
	(test_hdr, test_nla, test_nlmsg_done): New functions.
	(main): Use them.

	netlink: hook up a NETLINK_GENERIC decoder.
	* src/netlink_generic.h: New file.
	* src/netlink_generic.c: Likewise.
	* src/Makefile.am (libstrace_a_SOURCES): Add netlink_generic.c.
	* src/defs.h (decode_netlink_generic): New prototype.
	* src/netlink.c (netlink_decoders): Add NETLINK_GENERIC.
	* tests/netlink_nlctrl.c (test_nlmsg_type, test_sendmsg_nlmsg_type):
	Update expected output.
	* tests/netlink_generic.c: New file.
	* tests/gen_tests.in (netlink_generic): New test.
	* tests/pure_executables.list: Add netlink_generic.
	* tests/.gitignore: Likewise.

2024-07-03  Dmitry V. Levin  <ldv@strace.io>

	tests: rename netlink_generic to netlink_nlctrl.
	netlink_generic is going to be used later for generic genl tests.

	* tests/netlink_generic.c: Rename to netlink_nlctrl.c.
	* tests/pure_executables.list (netlink_generic): Rename to netlink_nlctrl.
	* tests/.gitignore: Likewise.
	* tests/gen_tests.in: Likewise.

2024-07-03  Dmitry V. Levin  <ldv@strace.io>

	bundled: add linux/genetlink.h.
	* bundled/linux/include/uapi/linux/genetlink.h: New file.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/genetlink.h.

	netlink: fix decoding of NETLINK_GENERIC nlmsg_flags.
	* src/xlat/netlink_genl_flags.in: New file.
	* src/netlink.c: Include "xlat/netlink_genl_flags.h".
	(decode_nlmsg_flags_generic): New function.
	(nlmsg_flags): Use it.
	* tests/netlink_generic.c (test_nlmsg_type, test_sendmsg_nlmsg_type):
	Update expected output.

2024-07-03  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>

	Update ioctl entries from linux v6.10.
	* src/linux/32/ioctls_inc_align16.h: Update from linux v6.10-rc7 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.

2024-07-03  Brandon Maier  <brandon.maier@collins.com>
	    Dmitry V. Levin  <ldv@strace.io>

	strace-log-merge: enhance wording of error diagnostics.
	When running `strace-log-merge` on strace logs created without
	timestamps, it used to print a message "strace output not found"
	which sounds like it failed to find the log files.

	Given that `iterate_logfiles process_suffix` has checked the log files
	for existence already, the second error message can be more specific
	about the error condition.

	* src/strace-log-merge: Enhance wording of error diagnostics.
	* tests/strace-log-merge-error.test: Update expected output.

2024-07-03  Brandon Maier  <brandon.maier@collins.com>

	strace-log-merge: support '-h' option.
	Given that -h is a commonly recognized name for a help option, accept it
	as synonym of --help.

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

	tests: update ioctl_v4l2 tests.
	* tests/ioctl_v4l2.c (main): Update the last known ioctl number to take
	into account VIDIOC_REMOVE_BUFS introduced by Linux kernel commit
	v6.10-rc1~135^2~302.

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

	tests: fix prlimit64-success test.
	* tests/gen_tests.in (prlimit64-success): Call check_scno_tampering.
	Usual -einject= heuristic rules that are used in case of poke-sendfile
	test are not applicable here because they don't support QUIRK markers.

	tests: fix poke-sendfile test.
	* tests/gen_tests.in (poke-sendfile): Specify --inject= parameter first
	to make gen_tests.sh insert a scno_tampering.sh invocation.

2024-06-30  Sahil Siddiq  <icegambit91@gmail.com>
	    Dmitry V. Levin  <ldv@strace.io>

	tests: check --decode-fds=eventfd.
	* tests/eventfd-yy.c: New file.
	* tests/eventfd--decode-fd-eventfd.c: Likewise.
	* tests/.gitignore: Add eventfd-yy and eventfd--decode-fd-eventfd.
	* tests/pure_executables.list: Likewise.
	* tests/gen_tests.in (eventfd-yy, eventfd--decode-fd-eventfd): New tests.

2024-06-30  Sahil Siddiq  <icegambit91@gmail.com>
	    Dmitry V. Levin  <ldv@strace.io>

	Add eventfd option to --decode-fds.
	Having an eventfd option for --decode-fds will help examine details
	of an eventfd object associated with an eventfd file descriptor.

	* src/filter_qualify.c (decode_fd_str_to_uint): Add "eventfd" option.
	* src/number_set.h: Add DECODE_FD_EVENTFD.
	* src/util.c: Parse eventfd related details.
	* src/strace.c (usage): Document "eventfd" option.
	* doc/strace.1.in: Likewise.
	* NEWS: Mention this change.

2024-06-30  Sahil Siddiq  <icegambit91@gmail.com>
	    Dmitry V. Levin  <ldv@strace.io>

	Allow scanning of fdinfo fields in one pass.
	Implement constructs to scan /proc/<pid>/fdinfo/<fd> in one pass
	and track which fields are available for display.

	* src/util.c (struct scan_fdinfo): New struct.
	(scan_fdinfo_lines): Use it.
	(scan_fdinfo): Wrapper around scan_fdinfo_lines.

2024-06-26  Dmitry V. Levin  <ldv@strace.io>

	riscv64: work around a kernel bug in syscall number tampering.
	Linux kernel commit v6.5-rc7~13^2~5 introduced a regression:
	when tracer changes syscall number to -1, the kernel fails to initialize
	a0 with -ENOSYS and subsequently fails to return the error code of the
	failed syscall to userspace.  Workaround this by initializing a0
	ourselves.

	* src/linux/riscv64/arch_defs_.h
	(ARCH_NEEDS_SET_ERROR_FOR_SCNO_TAMPERING): Define to 1.
	* syscall.c (tamper_with_syscall_entering)
	[ARCH_NEEDS_SET_ERROR_FOR_SCNO_TAMPERING]: Remove outdated comment.
	* NEWS: Mention this.

2024-06-26  Dmitry V. Levin  <ldv@strace.io>

	Implement decoding of mseal syscall.
	This new syscall was introduced by Linux kernel commit v6.10-rc1~16^2~3.

	* src/linux/generic/syscallent-common.h [BASE_NR + 462]: Wire up mseal.
	* src/mem.c (SYS_FUNC(mseal)): New function.
	* tests/mseal.c: New file.
	* tests/pure_executables.list: Add mseal.
	* tests/.gitignore: Likewise.
	* tests/gen_tests.in (mseal): New test.
	* NEWS: Mention this change.

2024-06-25  Dmitry V. Levin  <ldv@strace.io>

	statx: update decoding of struct statx.
	* src/statx.h (struct_statx): Add stx_subvol field, update reserved2
	field.
	* src/statx.c (SYS_FUNC(statx)): Print stx_subvol field when
	STATX_SUBVOL bit of stx_mask is set.
	* tests/xstatx.c (print_stat) [IS_STATX]: Update expected output.
	* NEWS: Mention this change.

	bpf: update decoding of BPF_RAW_TRACEPOINT_OPEN command.
	* src/bpf_attr.h (BPF_RAW_TRACEPOINT_OPEN_struct): Add cookie field
	introduced by Linux kernel commit v6.10-rc1~153^2~432^2~13^2~2.
	(expected_BPF_RAW_TRACEPOINT_OPEN_struct_size): Update.
	* src/bpf.c (BEGIN_BPF_CMD_DECODER(BPF_RAW_TRACEPOINT_OPEN)): Decode
	cookie field.
	* tests/bpf.c (BPF_RAW_TRACEPOINT_OPEN_checks): Check it.
	* NEWS: Mention this change.

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

	xlat: update V4L2_* constants.
	* src/xlat/v4l2_format_description_flags.in
	(V4L2_FMT_FLAG_META_LINE_BASED): New constant introduced by Linux kernel
	commit v6.10-rc1~135^2~85.
	* src/xlat/v4l2_pix_fmts.in (V4L2_PIX_FMT_Y12P): New constant
	introduced by Linux kernel commit v6.10-rc1~135^2~76.
	(V4L2_PIX_FMT_Y14P): New constant introduced by Linux kernel
	commit v6.10-rc1~135^2~75.
	* tests/ioctl_v4l2-success.c (main): Update expected output.
	* NEWS: Mention this change.

	xlat: update TEE_* constants.
	* src/xlat/tee_ioctl_impl_ids.in (TEE_IMPL_ID_TSTEE): New constant
	introduced by Linux kernel commit v6.10-rc1~238^2~6^2~2.
	* NEWS: Mention this change.

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

	xlat: update TCP_* constants.
	* src/xlat/sock_tcp_options.in (TCP_IS_MPTCP): New constant introduced
	by Linux kernel commit v6.10-rc1~153^2~21.
	* NEWS: Mention this change.

	xlat: update STATX_* constants.
	* src/xlat/statx_masks.in (STATX_SUBVOL): New constant introduced
	by Linux kernel commit v6.10-rc1~224^2~29.
	* tests/xstatx.c (main): Update expected output.
	* NEWS: Mention this change.

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

	xlat: update PR_* constants.
	* src/xlat/prctl_options.in (PR_RISCV_SET_ICACHE_FLUSH_CTX): New
	constant introduced by Linux kernel commit v6.10-rc1~52^2~7^2~2.
	(PR_PPC_GET_DEXCR, PR_PPC_SET_DEXCR): New constants introduced
	by Linux kernel commit v6.10-rc1~129^2~41.
	* NEWS: Mention this change.

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

	xlat: update *_MAGIC constants.
	* src/xlat/fsmagic.in (BCACHEFS_SUPER_MAGIC): New constant introduced
	by Linux kernel commit v6.10-rc1~99^2~18.
	* NEWS: Mention this change.

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

	xlat: update LANDLOCK_ACCESS_FS_* constants.
	* src/xlat/landlock_ruleset_access_fs.in (LANDLOCK_ACCESS_FS_IOCTL_DEV):
	New constant introduced by Linux kernel commit v6.10-rc1~116^2~11.
	* tests/landlock_add_rule.c (main): Update expected output.
	* tests/landlock_create_ruleset.c: Likewise.
	* NEWS: Mention this change.

	xlat: update KEXEC_* constants.
	* src/xlat/kexec_load_flags.in (KEXEC_CRASH_HOTPLUG_SUPPORT):
	New constant introduced by Linux kernel commit v6.10-rc1~129^2~1^2~5.
	* tests/kexec_load.c (main): Update expected output.
	* NEWS: Mention this change.

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

	xlat: update IORING_* constants.
	* src/xlat/uring_setup_features.in (IORING_FEAT_RECVSEND_BUNDLE): New
	constant introduced by Linux kernel commit v6.10-rc1~220^2~15.
	* NEWS: Mention this change.

	xlat: update KEY_* constants.
	* src/xlat/evdev_keycode.in (KEY_ACCESSIBILITY): New constant
	introduced by Linux kernel commit v6.10-rc3~5^2~6.
	(KEY_DO_NOT_DISTURB): New constant introduced by Linux kernel commit
	v6.10-rc3~5^2~5.
	* NEWS: Mention this change.

2024-06-18  Dmitry V. Levin  <ldv@strace.io>

	xlat: update BPF_* constants.
	* src/xlat/bpf_attach_type.in (BPF_TRACE_KPROBE_SESSION): New constant
	introduced by Linux kernel commit v6.10-rc1~153^2~13^2~43^2~6.
	* tests/bpf.c (BPF_PROG_QUERY_checks): Update expected output.
	* NEWS: Mention this change.

	fcntl: implement F_DUPFD_QUERY decoding.
	* src/xlat/fcntlcmds.in (F_DUPFD_QUERY): New constant introduced by
	Linux kernl commit v6.10-rc1~224^2~2.
	* src/fcntl.c (print_fcntl): Handle F_DUPFD_QUERY.
	* tests/fcntl-common.c (test_fcntl_others): Check it.
	* NEWS: Mention this change.

2024-06-17  Dmitry V. Levin  <ldv@strace.io>

	bundled: update linux UAPI headers to v6.10-rc4.
	* include/uapi/linux/cryptouser.h: Update to headers_install'ed
	Linux kernel v6.10-rc4.
	* include/uapi/linux/fcntl.h: Likewise.
	* include/uapi/linux/if_link.h: Likewise.
	* include/uapi/linux/input-event-codes.h: Likewise.
	* include/uapi/linux/io_uring.h: Likewise.
	* include/uapi/linux/kexec.h: Likewise.
	* include/uapi/linux/landlock.h: Likewise.
	* include/uapi/linux/mptcp.h: Likewise.
	* include/uapi/linux/prctl.h: Likewise.
	* include/uapi/linux/stat.h: Likewise.
	* include/uapi/linux/stddef.h: Likewise.
	* include/uapi/linux/tcp.h: Likewise.
	* include/uapi/linux/tee.h: Likewise.
	* include/uapi/linux/version.h: Likewise.
	* include/uapi/linux/videodev2.h: Likewise.

2024-06-16  Dmitry V. Levin  <ldv@strace.io>

	mem: print the 5th argument of mremap for MREMAP_DONTUNMAP.
	* src/mem.c (SYS_FUNC(mremap)): Print the 5th argument also for
	MREMAP_DONTUNMAP which was introduced by Linux kernel commit
	v5.7-rc1~124^2~49.

	Resolves: https://github.com/strace/strace/issues/306

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

	strace.1: document potential effects of CLONE_UNTRACED on --seccomp-bpf.
	* doc/strace.1.in (BUGS): Document that by using CLONE_UNTRACED flag
	tracee can accidentally break guarantee that --seccomp-bpf will not
	leave any processes with a seccomp program installed for syscall
	filtering purposes.

	References: https://github.com/strace/strace/issues/303

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

	strace.1: document potential effects of seccomp filters on --seccomp-bpf
	* doc/strace.1.in (--seccomp-bpf): Document potential side effects of
	another seccomp filter that returns an action value with a precedence
	greater than SECCOMP_RET_TRACE.

	References: https://github.com/strace/strace/issues/274

2024-06-03  Dmitry V. Levin  <ldv@strace.io>

	strace.1: enhance formatting of the description of --seccomp-bpf.
	* doc/strace.1.in (--seccomp-bpf): Use .IP for formatting.

2024-06-02  Dmitry V. Levin  <ldv@strace.io>

	strace.1: fix grammar in the description of --kill-on-exit.
	* doc/strace.1.in (--kill-on-exit): Fix grammar.

2024-05-27  Dmitry V. Levin  <ldv@strace.io>

	printpathn: change the last argument to include the terminating NUL.
	This simplifies code both in printpathn itself and in its callers.

	* src/util.c (printpathn): Change the meaning of the last argument to
	include the terminating NUL.  This essentially replaces "n + 1" with "n"
	in all cases where "n" is used in printpathn.
	(printpath): Update printpathn user.
	* src/dirent.c (decode_dentry_tail, print_old_dirent): Likewise.
	* src/dirent64.c (decode_dentry_tail): Likewise.
	* src/getcwd.c (SYS_FUNC(getcwd)): Likewise.

2024-05-26  Dmitry V. Levin  <ldv@strace.io>

	printpathn: do not modify the buffer filled out by umovestr.
	There is no need to modify the buffer after umovestr:
	if NUL was seen, then it is written to the buffer, and
	if NUL was not seen, then the whole buffer is written by umovestr.

	* src/util.c (printpathn): Do not overwrite the trailing byte in the
	buffer.

2024-05-25  Dmitry V. Levin  <ldv@strace.io>

	Unexport syscall_trap_sig variable.
	* src/strace.c (syscall_trap_sig): Add static qualifier.

	Complements: v4.10~73 "Remove support for systems without PTRACE_SETOPTIONS"

2024-05-24  Dmitry V. Levin  <ldv@strace.io>

	Rename interrupt_or_stop() to detach_or_interrupt_or_stop()
	That's what the function actually does.

	* src/strace.c (interrupt_or_stop): Rename to
	detach_or_interrupt_or_stop.
	(detach, cleanup): Update callers.

2024-05-23  Dmitry V. Levin  <ldv@strace.io>

	mips: drop sysmips(SETNAME) support.
	Given that it was removed from the kernel by commit v2.6.17-rc6~57^2~11,
	it's safe to remove it here as well.

	* src/sysmips.c (SYS_FUNC(sysmips)) <SETNAME>: Remove.

2024-05-23  Dmitry V. Levin  <ldv@strace.io>

	kd_ioctl: use printstr_ex instead of open-coding it.
	* src/kd_ioctl.c (kd_kbd_str_entry): Use printstr_ex() to print
	struct kbsentry.kb_string.
	* tests/ioctl_kd.c (check_kbdsent): Update expected output.

2024-05-23  Dmitry V. Levin  <ldv@strace.io>

	kd_ioctl: workaround linux/kd.h regression.
	Starting with linux kernel commit 8c467f330059, linux/kd.h uses macros
	from linux/ioctl.h without including that header.  Workaround this by
	including <linux/ioctl.h> ourselves.

	* src/kd_ioctl.c: Include <linux/ioctl.h>.
	* src/kd_mpers_ioctl.c: Likewise.

2024-05-21  Dmitry V. Levin  <ldv@strace.io>

	dm: use sequence_truncation_needed.
	This means that sequences of objects will be printed abbreviated only
	in cases when the corresponding syscalls are printed abbreviated.

	* src/dm.c (dm_decode_dm_target_spec, dm_decode_dm_name_list,
	dm_decode_dm_target_versions): Use sequence_truncation_needed()
	in printing sequences of objects.
	* tests/ioctl_dm.c (main): Update expected output.

2024-05-20  Dmitry V. Levin  <ldv@strace.io>

	btrfs: use sequence_truncation_needed.
	This means that sequences of objects will be printed abbreviated only
	in cases when the corresponding syscalls are printed abbreviated.

	* src/btrfs.c (decode_search_arg_buf): Use sequence_truncation_needed()
	in printing sequences of btrfs_ioctl_search_header objects.

2024-05-18  Dmitry V. Levin  <ldv@strace.io>

	Introduce sequence_truncation_needed() helper.
	* src/defs.h (sequence_truncation_needed): New function declaration.
	* src/util.c (sequence_truncation_needed): New function.
	(print_array_ex): Use it.
	* src/execve.c (printargv): Likewise.
	* src/lsm.c (decode_lsm_ctx_sequence): Likewise.
	* src/netlink.c (decode_netlink): Likewise.
	* src/nlattr.c (decode_nlattr): Likewise.
	* src/poll.c (decode_poll_exiting): Likewise.

2024-05-17  Dmitry V. Levin  <ldv@strace.io>

	btrfs: fix off-by-one in comparison of iterator with max_strlen.
	When iterator that started with zero reaches max_strlen, it points
	to the next element after max_strlen-th.

	* src/btrfs.c (decode_search_arg_buf): Fix comparison of iterator
	with max_strlen.

2024-05-16  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.9-1.
	* strace.spec.in: Likewise.

2024-05-14  Dmitry V. Levin  <ldv@strace.io>

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

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

2024-05-13  Dmitry V. Levin  <ldv@strace.io>

	bpf: implement decoding of BPF_TOKEN_CREATE command.
	* src/bpf_attr.h (BPF_TOKEN_CREATE_struct): New structure introduced
	by Linux commit v6.9-rc1~159^2~423^2~4^2~27.
	(BPF_TOKEN_CREATE_struct_size, expected_BPF_TOKEN_CREATE_struct_size):
	New macros.
	* src/bpf.c (BEGIN_BPF_CMD_DECODER(BPF_TOKEN_CREATE)): New function.
	(SYS_FUNC(bpf)) <bpf_cmd_decoders[]>: Use it.
	* tests/bpf.c (union bpf_attr_data): Add
	BPF_ATTR_DATA_FIELD(BPF_TOKEN_CREATE).
	(BPF_TOKEN_CREATE_checks): New checks array.
	(main) <checks>: Add CHK(BPF_TOKEN_CREATE).
	* NEWS: Mention this change.

2024-05-12  Dmitry V. Levin  <ldv@strace.io>

	xlat: update BPF_* constants.
	* src/xlat/bpf_commands.in (BPF_TOKEN_CREATE): New constant introduced
	by Linux kernel commit v6.9-rc1~159^2~423^2~4^2~27.
	* src/xlat/bpf_file_flags.in (BPF_F_VTYPE_BTF_OBJ_FD): New constant
	introduced by Linux kernel commit v6.9-rc1~159^2~423^2~10^2~6.
	(BPF_F_TOKEN_FD): New constant introduced by Linux kernel commit
	v6.9-rc1~159^2~423^2~4^2~26.
	(BPF_F_SEGV_ON_FAULT, BPF_F_NO_USER_CONV): New constants introduced
	by Linux kernel commit v6.9-rc1~159^2~2^2~3^2~13.
	* src/xlat/bpf_map_types.in (BPF_MAP_TYPE_ARENA): Likewise.
	* src/xlat/bpf_op_jmp.in (BPF_JCOND): New constant introduced
	by Linux kernel commit v6.9-rc1~159^2~2^2~11^2~3.
	* tests/bpf.c: Check it.
	* NEWS: Mention this change.

2024-05-10  Dmitry V. Levin  <ldv@strace.io>

	io_uring: implement decoding of IORING_REGISTER_USE_REGISTERED_RING opcode flag
	This io_uring_register opcode flag was introduced by Linux kernel commit
	v6.3-rc1~209^2.

	* src/xlat/uring_register_opcode_flags.in: New file.
	* src/io_uring.c: Include "xlat/uring_register_opcode_flags.h".
	(print_io_uring_register_opcode): New function.
	(SYS_FUNC(io_uring_register)): Use it to print opcodes.
	* tests/io_uring_register.c (main): Check it.
	* NEWS: Mention this change.

2024-05-09  Dmitry V. Levin  <ldv@strace.io>

	io_uring: implement decoding of IORING_{UN,}REGISTER_NAPI opcodes.
	This io_uring_register opcode was introduced by Linux kernel commit
	v6.9-rc1~215^2~26.

	* src/io_uring.c (print_io_uring_napi, print_ioring_register_napi,
	print_ioring_unregister_napi): New functions.
	(SYS_FUNC(io_uring_register)): Use them to decode
	IORING_REGISTER_NAPI and IORING_UNREGISTER_NAPI opcodes.
	* tests/io_uring_register.c (main): Check it.
	* NEWS: Mention this change.

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

	io_uring: implement decoding of IORING_REGISTER_PBUF_STATUS opcode.
	This io_uring_register opcode was introduced by Linux kernel commit
	v6.8-rc1~29^2~8.

	* src/io_uring.c (print_io_uring_buf_status): New function.
	(SYS_FUNC(io_uring_register)): Use it to decode
	IORING_REGISTER_PBUF_STATUS opcode.
	* tests/io_uring_register.c (main): Check it.
	* NEWS: Mention this change.

2024-05-07  Dmitry V. Levin  <ldv@strace.io>

	io_uring: implement decoding of IORING_REGISTER_FILE_ALLOC_RANGE opcode.
	This io_uring_register opcode was introduced by Linux kernel commit
	v6.0-rc1~181^2~31.

	* src/io_uring.c (print_io_uring_file_index_range): New function.
	(SYS_FUNC(io_uring_register)): Use it to decode
	IORING_REGISTER_FILE_ALLOC_RANGE opcode.
	* tests/io_uring_register.c (main): Check it.
	* NEWS: Mention this change.

2024-05-07  Dmitry V. Levin  <ldv@strace.io>

	tests/io_uring_register.c: constify tail allocations.
	* tests/io_uring_register.c (main): Add const qualifier to all pointers
	to memory allocated using tail_alloc() family functions.

	tests: use TAIL_ALLOC_OBJECT_VAR_ARR where appropriate.
	* tests/pwritev.c (main): Use TAIL_ALLOC_OBJECT_VAR_ARR().

	tests: use TAIL_ALLOC_OBJECT_CONST_ARR where appropriate.
	* tests/aio.c (main): Use TAIL_ALLOC_OBJECT_CONST_ARR().
	* tests/aio_pgetevents.c (main): Likewise.
	* tests/bpf-obj_get_info_by_fd.c (main): Likewise.
	* tests/caps.c (main): Likewise.
	* tests/clone3.c (main): Likewise.
	* tests/futex_requeue.c (main): Likewise.
	* tests/futex_waitv.c (main): Likewise.
