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
	by Linux kernel commit v6.13-rc1~149^2~224.
	(V4L2_PIX_FMT_NV20, V4L2_PIX_FMT_NV15): New constants introduced
	by Linux kernel commit v6.16-rc1~145^2~307.
	* NEWS: Mention this change.

	Update decoding of statx syscall.
	* src/statx.h (struct_statx): Add stx_atomic_write_unit_max_opt
	introduced by Linux kernel commit v6.16-rc1~209^2~4^2^2~16,
	update reserved space.
	* src/statx.c (SYS_FUNC(statx)): Print stx_atomic_write_unit_max_opt
	member of struct statx when STATX_ATTR_WRITE_ATOMIC bit is set.
	* tests/xstatx.c (print_stat): Check it.
	* NEWS: Mention this change.

	xlat: update RXRPC_* constants.
	* src/xlat/sock_rxrpc_options.in (RXRPC_MANAGE_RESPONSE): New constant
	introduced by Linux kernel commit v6.16-rc1~132^2~308^2~10.
	* NEWS: Mention this change.

	xlat: update PR_* constants.
	* src/xlat/prctl_options.in (PR_GET_SHADOW_STACK_STATUS,
	PR_SET_SHADOW_STACK_STATUS, PR_LOCK_SHADOW_STACK_STATUS): New constants
	introduced by Linux kernel commit v6.13-rc1~15^2~5^2~38.
	(PR_TIMER_CREATE_RESTORE_IDS): New constant introduced by Linux kernel
	commit v6.15-rc1~204^2~4.
	(PR_FUTEX_HASH): New constant introduced by Linux kernel commit
	v6.16-rc1~199^2^2~20.
	* tests/prctl-no-args.c (options_unknown): Update.
	* NEWS: Mention this change.

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

	xlat: update NFT_MSG_* constants.
	* src/xlat/nf_nftables_msg_types.in (NFT_MSG_NEWDEV, NFT_MSG_DELDEV):
	New constants introduced by Linux kernel commit v6.16-rc1~132^2~30^2~1.
	* src/netlink.c (decode_nlmsg_flags_netfilter): Handle them.
	* NEWS: Mention this change.

	xlat: update NETDEV_* constants.
	* src/xlat/genl_netdev_cmd.in (NETDEV_CMD_BIND_RX): New constant
	introduced by Linux kernel commit v6.12-rc1~232^2~32^2~11.
	(NETDEV_CMD_NAPI_SET): New constant introduced by Linux kernel commit
	v6.13-rc1~135^2~333^2~3.
	(NETDEV_CMD_BIND_TX): New constant introduced by Linux kernel commit
	v6.16-rc1~132^2~125^2~6.
	* tests/netlink_nlctrl.c (test_nla_ops_family): Update expected output.
	* NEWS: Mention this change.

	xlat: update KVM_* constants.
	* src/xlat/kvm_cap.in (KVM_CAP_ARM_EL2, KVM_CAP_ARM_EL2_E2H0): New
	constants introduced by Linux kernel commit v6.16-rc1~78^2^2~9^2~4.
	(KVM_CAP_RISCV_MP_STATE_RESET): New constant introduced by Linux
	kernel commit v6.16-rc1~78^2~12.
	* NEWS: Mention this change.

	xlat: update SW_* constants.
	* src/xlat/evdev_switch.in (SW_MACHINE_COVER): New constant introduced
	by Linux kernel commit v5.8-rc6~36^2~6.
	(SW_USB_INSERT): New constant introduced by Linux kernel commit
	v6.16-rc1~28^2~157.
	* NEWS: Mention this change.

	xlat: update BR_* constants.
	* src/xlat/rtnl_ifla_br_boolopts.in
	(BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION): New constant introduced by
	Linux kernel commit v6.16-rc1~132^2~317^2~.
	* src/xlat/rtnl_ifla_br_boolopt_flags.in
	(1<<BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION): Likewise.
	* tests/nlattr_ifla_linkinfo.c (main): Update expected output.
	* NEWS: Mention this.

	xlat: update MDB_* constants.
	* src/xlat/mdb_flags.in (MDB_FLAGS_OFFLOAD_FAILED): New constant
	introduced by Linux kernel commit v6.16-rc1~132^2~317^2~2.
	* NEWS: Mention this change.

	xlat: update FUTEX2_* constants.
	* src/xlat/futex2_flags.in (FUTEX2_MPOL): New constant introduced
	by Linux kernel commit v6.16-rc1~199^2^2~15.
	* tests/futex2_flags.h (futex2_flags): Test it.
	* tests/futex_waitv.c (main): Update expected output.
	* NEWS: Mention this change.

2025-06-17  Jan Macku  <jamacku@redhat.com>

	ci: fix Differential ShellCheck failures.
	Add a branch on which to run the Action. This will fix issues like:
	
	`git: base SHA1 (0000000000000000000000000000000000000000) doesn't exist. Make sure that the base branch is up-to-date.`

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

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

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

	xlat: update IORING_* constants.
	* bundled/linux/include/uapi/linux/io_uring.h: Update to
	headers_install'ed Linux kernel v6.16-rc2.
	* src/xlat/uring_ops.in (IORING_OP_PIPE): New constant introduced
	by Linux kernel commit v6.16-rc1~215^2~54.
	* tests/io_uring_register.c (main): Update expected output.
	* NEWS: Mention this change.

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

	bundled: update linux UAPI headers to v6.16-rc2.
	The update of linux/io_uring.h is delayed because it contains an update
	of enum io_uring_op that has to be done along with the corresponding
	update of src/xlat/uring_ops.in and tests/io_uring_register.c files.

	* bundled/linux/include/uapi/linux/blktrace_api.h: Update to
	headers_install'ed Linux kernel v6.16-rc2.
	* bundled/linux/include/uapi/linux/devlink.h: Likewise.
	* bundled/linux/include/uapi/linux/dm-ioctl.h: Likewise.
	* bundled/linux/include/uapi/linux/ethtool.h: Likewise.
	* bundled/linux/include/uapi/linux/ethtool_netlink_generated.h: Likewise.
	* bundled/linux/include/uapi/linux/fs.h: Likewise.
	* bundled/linux/include/uapi/linux/fscrypt.h: Likewise.
	* bundled/linux/include/uapi/linux/futex.h: Likewise.
	* bundled/linux/include/uapi/linux/if_bridge.h: Likewise.
	* bundled/linux/include/uapi/linux/if_link.h: Likewise.
	* bundled/linux/include/uapi/linux/input-event-codes.h: Likewise.
	* bundled/linux/include/uapi/linux/netdev.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/nl80211.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/prctl.h: Likewise.
	* bundled/linux/include/uapi/linux/stat.h: Likewise.
	* bundled/linux/include/uapi/linux/taskstats.h: Likewise.
	* bundled/linux/include/uapi/linux/tcp.h: Likewise.
	* bundled/linux/include/uapi/linux/version.h: Likewise.
	* bundled/linux/include/uapi/linux/videodev2.h: Likewise.
	* bundled/linux/include/uapi/rdma/ib_user_verbs.h: Likewise.

2025-05-27  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.15-1.
	* strace.spec.in: Likewise.

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

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

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

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

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

	Update .mailmap.
	* .mailmap: Add enother email address of Sahil Siddiq to avoid
	duplication in CREDITS file.

2025-05-23  Sahil Siddiq  <sahilcdq0@gmail.com>

	tests: Add tests for AF_TIPC decoding.
	Add tests to verify decoding of AF_TIPC socket addresses and
	socket options.

	* tests/sol_tipc-group_join.c: New file.
	* tests/sol_tipc-group_join-Xabbrev.c: Likewise.
	* tests/sol_tipc-group_join-Xraw.c: Likewise.
	* tests/sol_tipc-group_join-Xverbose.c: Likewise.
	* tests/sol_tipc-group_join-success.c: Likewise.
	* tests/sol_tipc-group_join-success-Xabbrev.c: Likewise.
	* tests/sol_tipc-group_join-success-Xraw.c: Likewise.
	* tests/sol_tipc-group_join-success-Xverbose.c: Likewise.
	* tests/sol_tipc-importance.c: Likewise.
	* tests/sol_tipc-importance-Xabbrev: Likewise.
	* tests/sol_tipc-importance-Xraw: Likewise.
	* tests/sol_tipc-importance-Xverbose: Likewise.
	* tests/sol_tipc-importance-success: Likewise.
	* tests/sol_tipc-importance-success-Xabbrev: Likewise.
	* tests/sol_tipc-importance-success-Xraw: Likewise.
	* tests/sol_tipc-importance-success-Xverbose: Likewise.
	* tests/.gitignore: Add sol_tipc-* entries.
	* tests/Makefile.am (check_PROGRAMS): Likewise.
	* tests/gen_tests.in: Likewise.
	* tests/sockaddr_xlat.c: Include <linux/tipc.h>.
	(check_tipc): New function.
	(main): Invoke it.

2025-05-23  Sahil Siddiq  <sahilcdq0@gmail.com>

	net: Implement decoding of AF_TIPC socket options.
	* src/xlat/af_tipc_flags.in: New file.
	* src/xlat/af_tipc_importance.in: Likewise.
	* src/net.c: Include <linux/tipc.h> and "xlat/af_tipc_*" headers.
	(print_tipc_importance, print_tipc_group_join): New functions.
	(print_getsockopt, print_setsockopt): Use them to decode AF_TIPC
	socket options.
	* NEWS: Mention this change.

	sockaddr: Implement decoding of AF_TIPC socket addresses.
	* src/xlat/af_tipc_scope.in: New file.
	* src/xlat/af_tipc_types.in: Likewise.
	* src/sockaddr.c: Include <linux/tipc.h> and "xlat/af_tipc_*" headers.
	(print_sockaddr_data_tipc): New function.
	(sa_printers) <[AF_TIPC]>: New printer.

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

	bundled: add uapi/linux/tipc.h.
	* bundled/linux/include/uapi/linux/tipc.h: New file, imported from
	headers_install'ed Linux kernel v6.15-rc7.
	* bundled/Makefile.am (EXTRA_DIST): Add linux/include/uapi/linux/tipc.h.

	bundled: update linux UAPI headers to v6.15-rc7.

2025-05-20  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>

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

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

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

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

	Implement decoding of open_tree_attr syscall.
	This new syscall was introduced by Linux kernel commit
	v6.15-rc1~252^2~4^2~2.

	* src/linux/generic/syscallent-common.h [BASE_NR + 467]: Wire up
	open_tree_attr.
	* src/mount_setattr.c (SYS_FUNC(open_tree_attr)): New function.
	* src/pathtrace.c (pathtrace_match_set): Handle SEN_open_tree_attr.
	* NEWS: Mention this change.

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

	open_tree: move into mount_setattr.
	* src/mount_setattr.c: Include "kernel_fcntl.h" and
	"xlat/open_tree_flags.h".
	(SYS_FUNC(open_tree)): Move here from open_tree.c, rewrite using
	decode_dfd_file_flags helper.
	* src/open_tree.c: Remove.
	* src/Makefile.am (libstrace_a_SOURCES): Remove open_tree.c.

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

	mount_setattr: factor out helper functions.
	* src/mount_setattr.c (decode_dfd_file_flags,
	decode_dfd_file_flags_attr): New helper functions.
	(+SYS_FUNC(mount_setattr)): Use decode_dfd_file_flags_attr.

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

	xlat/open_tree_flags: remove unsupported constants.
	* src/xlat/open_tree_flags.in (AT_REMOVEDIR, AT_SYMLINK_FOLLOW): Remove
	constants that have never been supported by open_tree syscall.
	* tests/open_tree.c (main): Update expected output.

	Fixes: v5.2~45 "Implement decoding of open_tree syscall"

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

	tests/group_req: fix compilation warnings.
	Workaround the following warnings generated in group_req.c test starting
	with glibc-2.40.9000-1022-ge3a6e85d67f1a48dec3e2557a83d6ce1544a58cb that
	introduced _FORTIFY_SOURCE support for inet_pton:

	  In function 'inet_pton',
	      inlined from 'main' at group_req.c:48:2:
	  /usr/include/bits/inet-fortified.h:56:10: warning: call to '__inet_pton_chk_warn' declared with attribute warning: inet_pton called with a destination buffer size too small [-Wattribute-warning]
