2020-04-07  Dmitry V. Levin  <ldv@altlinux.org>

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

	.mailmap: add more entries to avoid duplication in CREDITS.

2020-04-07  Dmitry V. Levin  <ldv@altlinux.org>

	tests: cleanup temporary files left by read-write test executable.
	This test executable is invoked by 19 tests, leaving about 100M
	of data in temporary files.

	In each of these tests read-write is invoked twice: the first time by
	run_prog and the second time by run_strace.  Since the temporary file
	created during the first invocation is used by strace during the second
	invocation, this file can only be cleaned up at the end of the second
	invocation.

	* tests/read-write.c (main): If the temporary file was not created,
	unlink it before the exit.

2020-04-07  Dmitry V. Levin  <ldv@altlinux.org>

	tests: rewrite redirect.test without a busy loop.
	* tests/redirect.test: Invoke $SLEEP_A_BIT while waiting
	for synchronization with the tracer.

2020-04-06  Dmitry V. Levin  <ldv@altlinux.org>

	README.md: add github CI status badge.

2020-04-06  Eugene Syromyatnikov  <evgsyr@gmail.com>

	strace: make -yy equivalent to --decode-fds=all.
	With inclusion of device file and, later, pidfd decoding into -yy
	semantics, it is clear that one cannot rely on stability of set
	of file descriptor decoding features enabled by -yy.  State that
	formally by aliasing -yy to --decode-fds=all.  Those who want only
	specific FD decoding capabilities being enabled know that they need
	it and can resort to --decode-fds=SET syntax.

	* strace.1.in (.SS Output formatting): Change -yy alias
	to --decode-fds=all, update the -yy option description.
	* strace.c (usage): Likewise; expand --decode-fds description.
	(init): Change yyflag_qual value to "all".

2020-04-06  Dmitry V. Levin  <ldv@altlinux.org>

	travis: remove build jobs covered by github actions.
	* .travis.yml: Remove all bionic build jobs on x86_64, x86, and x32 except
	the first one which is probably the fasted and is kept for reference.
	Remove all gcc-8 and gcc-9 jobs since the corresponding repositories
	are broken.

2020-04-06  Dmitry V. Levin  <ldv@altlinux.org>

	github: add CI action.
	Somewhat similar to Travis CI, this runs "make distcheck" on Ubuntu
	18.04 using gcc-9, gcc-7, clang-9, and clang-6 on x86_64, x86, and x32
	architectures.

	Compared with Travis CI, GitHub Actions service currently provides
	a significantly better parallelism as well as (unsurprisingly)
	better integration with github.

	However, GitHub Actions cannot replace Travis CI completely as
	the latter can build on aarch64, s390x, and ppc64le architectures.

	* .github/workflows/source-code-check.yml: Remove.
	* .github/workflows/ci.yml: New file.

2020-04-06  Dmitry V. Levin  <ldv@altlinux.org>

	tests: fix poll-P.test.
	All invocations of poll-P executable must have a properly created
	descriptor 9.

	* tests/poll-P.test: Fix run_prog invocations.

	Fixes: v4.21~122 "tests: check path tracing of poll syscall"

2020-04-06  Dmitry V. Levin  <ldv@altlinux.org>

	tests: remove poll-P and ppoll-P from pure_executables.list.
	Since these executables have to be invoked in a special way,
	it was not correct to include them into pure_executables.list.

	* tests/pure_executables.list: Move poll-P and ppoll-P ...
	* tests/Makefile.am (check_PROGRAMS): ... here.

	Fixes: v4.21~122 "tests: check path tracing of poll syscall"
	Fixes: v4.21~121 "tests: check path tracing of ppoll syscall"

2020-04-06  Dmitry V. Levin  <ldv@altlinux.org>

	tests: workaround clang compilation warning.
	Silence the following incorrect compilation warning produced by clang:

	tests/io_uring_register.c:271:10: error: format specifies type 'unsigned short' but the argument has type 'int' [-Werror,-Wformat]
	                        probe->ops[i].flags & (typeof(probe->ops[i].flags)) ~1,
	                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	* tests/io_uring_register.c (main): Cast the whole
	struct io_uring_probe_op.flags based expression
	to the type of the first operand.

	Complements: v5.5-183-g8b6487f9a "tests: fix clang compilation warning"

2020-04-05  Dmitry V. Levin  <ldv@altlinux.org>

	travis: update coverage configuration.
	* .travis.yml [$CHECK == coverage]: Change dist from trusty to bionic,
	change the compiler from gcc to gcc-9, change STACKTRACE from libunwind
	to libdw.
	* ci/run-build-and-tests.sh [$CHECK == coverage] (GCOV): New variable,
	pass its value to ./codecov.bash.

2020-04-05  Dmitry V. Levin  <ldv@altlinux.org>

	ci: workaround unusable codecov-python.
	As codecov-python, starting with commit
	v2.0.15-44-g9f50cca7e5c5e0bb5e2859db238da08e3195e105 released almost
	a month ago, became an utterly unusable pile of garbage, switch to
	codecov-bash that still works.

	* ci/install-dependencies.sh [$CHECK == coverage]: Do not install
	lcov, python-pip, python-setuptools, and codecov.  Download
	https://codecov.io/bash and save it as codecov.bash.
	* ci/run-build-and-tests.sh [$CHECK == coverage] (ac_cv_prog_LCOV,
	ac_cv_prog_GENHTML): New variables, export them.
	[[$CHECK == coverage]: Invoke codecov.bash instead of codecov.

2020-04-05  Dmitry V. Levin  <ldv@altlinux.org>

	ci: use twice as many cpus for tests.
	Since many tests sleep a lot, running more of them in parallel
	increases overall performance.

	* ci/run-build-and-tests.sh (j2): New variable.
	Use it instead of $j for "make check" and "make distcheck".

2020-04-05  Dmitry V. Levin  <ldv@altlinux.org>

	ci: use -Og instead of -O0 for coverage builds.
	Also, do not apply this debugging optimization level to tests.

	* ci/run-build-and-tests.sh [$CHECK == coverage] (CFLAGS,
	CFLAGS_FOR_BUILD): Remove.
	[$CHECK == coverage]: Specify CFLAGS='-g -Og' to "make all".

2020-04-05  Dmitry V. Levin  <ldv@altlinux.org>

	travis: switch from clang 7 to clang-9.
	* .travis.yml (matrix): Switch all clang 7 builds to clang-9.

2020-04-05  Eugene Syromyatnikov  <evgsyr@gmail.com>

	NEWS: mention libdw symbol-to-address cache introduction.
	Complements: v5.5-178-g2101456 "unwind-libdw: add caching"

2020-04-05  Dmitry V. Levin  <ldv@altlinux.org>

	tests: fix clang compilation warning.
	Silence the following compilation warning produced by clang:

	tests/io_uring_register.c:271:10: error: format specifies type 'unsigned short' but the argument has type 'int' [-Werror,-Wformat]
	                        probe->ops[i].flags & ~1,
	                        ^~~~~~~~~~~~~~~~~~~~~~~~

	* tests/io_uring_register.c (main): Cast the second operand
	of struct io_uring_probe_op.flags based expression to the type
	of the first operand.

2020-04-05  Paul Chaignon  <paul.chaignon@gmail.com>

	bpf: support new commands BPF_MAP_*_BATCH.
	* xlat/bpf_commands.in (BPF_MAP_LOOKUP_BATCH): New constant introduced
	by Linux commit v5.6-rc1~151^2~46^2~23^2~7.
	(BPF_MAP_LOOKUP_AND_DELETE_BATCH): New constant introduced by Linux
	commit v5.6-rc1~151^2~46^2~23^2~4.
	(BPF_MAP_UPDATE_BATCH, BPF_MAP_DELETE_BATCH): New constants introduced
	by Linux commit v5.6-rc1~151^2~46^2~23^2~6.
	* bpf.c (BEGIN_BPF_CMD_DECODER(BPF_MAP_LOOKUP_BATCH),
	BEGIN_BPF_CMD_DECODER(BPF_MAP_UPDATE_BATCH),
	BEGIN_BPF_CMD_DECODER(BPF_MAP_DELETE_BATCH)): Decode the new commands.
	(decode_BPF_MAP_LOOKUP_AND_DELETE_BATCH): New macro.
	(SYS_FUNC(bpf)): Decode the new commands.
	* bpf_attr.h (BPF_MAP_LOOKUP_BATCH_struct,
	BPF_MAP_LOOKUP_AND_DELETE_BATCH_struct, BPF_MAP_UPDATE_BATCH_struct,
	BPF_MAP_DELETE_BATCH_struct): New structs introduced by Linux commit
	v5.6-rc1~151^2~46^2~23^2~7.
	(BPF_MAP_LOOKUP_BATCH_struct_size,
	BPF_MAP_LOOKUP_AND_DELETE_BATCH_struct_size,
	BPF_MAP_UPDATE_BATCH_struct_size, BPF_MAP_DELETE_BATCH_struct_size): New
	macros.
	* NEWS: Mention this.
	* tests/bpf.c (BPF_MAP_LOOKUP_BATCH_checks, BPF_MAP_UPDATE_BATCH_checks,
	BPF_MAP_DELETE_BATCH_checks): Tests for the new commands.

2020-04-05  Eugene Syromyatnikov  <evgsyr@gmail.com>

	Print PIDs associated with pidfds.
	* number_set.h (decode_fd_bits): Add DECODE_FD_PIDFD to enum.
	* filter_qualify.c (decode_fd_str_to_uint) <decode_fd_strs>: Add pidfd
	argument name and value.
	* util.c (printpidfd): New function.
	(printfd): Call printpidfd if DECODE_FD_PIDFD is set.
	* strace.c (init) <yyflag_qual>: Add pidfd.
	(usage): Document pidfd option argument.
	* strace.1.in (.SS Output format): Likewise.
	* tests/pidfd_getfd-yy.c: New file.
	* tests/pidfd_open--decode-fd-pidfd.c: Likewise.
	* tests/pidfd_open--decode-fd-socket.c: Likewise.
	* tests/pidfd_open-yy.c: Likewise.
	* tests/.gitignore: Add pidfd_getfd-yy, pidfd_open--decode-fd-pidfd,
	pidfd_open--decode-fd-socket, and pidfd_open-yy.
	* tests/pure_executables.list: Likewise.
	* tests/gen_tests.in: Add pidfd_getfd-yy, pidfd_open--decode-fd-pidfd,
	pidfd_open--decode-fd-socket, and pidfd_open-yy tests.
	* tests/pidfd_getfd.c [!PRINT_PIDFD] (PRINT_PIDFD): New macro, define
	to 0.
	(main) [PRINT_PIDFD]: New variable pidfd_str, print expected pidfd
	string to it.
	(main) [!PRINT_PIDFD]: New variable pidfd_str, set it to PIDFD_PATH.
	(main): Print pidfd_str instead of PIDFD_PATH.
	* tests/pidfd_open.c (main) [PRINT_PIDFD]: Print pidfd using "<pid:%d>"
	format.
	* NEWS: Mention the change.

2020-04-03  Dmitry V. Levin  <ldv@altlinux.org>

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

2020-04-03  Dmitry V. Levin  <ldv@altlinux.org>

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

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

2020-04-03  Jann Horn  <jannh@google.com>

	unwind-libdw: add caching.
	libdw's address-to-symbol logic is quite slow. Since when stracing a
	process, it is normal to see the same call sites over and over again,
	let's address that by adding a straightforward N-way associative cache
	in front of libdw.

	The cache parameters could probably use some fine-tuning,
	but ought to be good enough for now.

	The resulting performance improvement:

	$ time ./strace-orig -o /dev/null -k bash -c 'for i in {0..10000}; do echo; done' >/dev/null

	real	0m12,014s
	user	0m11,512s
	sys	0m0,575s
	$ time ./strace-cache -o /dev/null -k bash -c 'for i in {0..10000}; do echo; done' >/dev/null

	real	0m0,765s
	user	0m0,451s
	sys	0m0,371s

	Reviewed-By: Masatake YAMATO <yamato@redhat.com>

	* unwind-libdw.c: Include "static_assert.h".
	(STRACE_UW_CACHE_SIZE, STRACE_UW_CACHE_ASSOC): New macros.
	(struct cache_entry): New type.
	(struct ctx): Add "cache" field, extend the type of "last_proc_updating"
	field.
	(mapping_generation): Extend the type, initialize to 1.
	(uwcache_clock): New variable.
	(tcb_init): Initialize struct ctx.cache.
	(truct frame_user_data): Add "ctx" field.
	(find_bucket): New function.
	(frame_callback): Use it.
	(tcb_walk): Initialize user_data.ctx.

2020-04-02  Dmitry V. Levin  <ldv@altlinux.org>

	sparc, sparc64: wire up former vserver syscall.
	... because Linux kernel arch/sparc/kernel/syscalls/syscall.tbl
	still lists it.

	* linux/sparc/syscallent.h [267]: Add vserver entry.
	* linux/sparc64/syscallent.h [267]: Add vserver entry.

2020-04-02  Dmitry V. Levin  <ldv@altlinux.org>

	hppa: wire up kexec_file_load syscall.
	... introduced on hppa by Linux kernel commit v5.4-rc1~188^2~3.

	* linux/hppa/syscallent.h [355]: Add kexec_file_load entry.
	* NEWS: Mention this.

2020-04-02  Eugene Syromyatnikov  <evgsyr@gmail.com>

	hdio: implement HDIO_DRIVE_CMD ioctl command decoding.
	* xlat/hdio_drive_cmds.in: New file.
	* hdio.c: Include "xlat/hdio_drive_cmds.h".
	(print_hdio_drive_cmd): New function.
	(hdio_ioctl): Call print_hdio_drive_cmd if code is HDIO_DRIVE_CMD.
	* tests/ioctl_hdio.c (main) <unsupp_cmds>: Remove HDIO_DRIVE_CMD.
	(main): Add HDIO_DRIVE_CMD checks.

	Closes: https://github.com/strace/strace/issues/83

2020-04-02  Eugene Syromyatnikov  <evgsyr@gmail.com>

	hdio: factor out the HDIO_GETGEO handler into a separate function.
	And update it up to the current coding style.

	* hdio.c: Include "print_fields.h".
	(print_hdio_getgeo): New function.
	(hdio_ioctl) <case HDIO_GETGEO>: Call print_hdio_getgeo instead
	of decoding in place.

2020-04-02  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: check decoding of HDIO_* ioctls.
	* tests/.gitignore: Add ioctl_hdio, ioctl_hdio-success,
	ioctl_hdio-success-Xabbrev, ioctl_hdio-success-Xraw,
	ioctl_hdio-success-Xverbose, ioctl_hdio-success-v,
	ioctl_hdio-success-v-Xabbrev, ioctl_hdio-success-v-Xraw,
	ioctl_hdio-success-v-Xverbose, ioctl_hdio-Xabbrev,
	ioctl_hdio-Xraw, ioctl_hdio-Xverbose, ioctl_hdio-v,
	ioctl_hdio-v-Xabbrev, ioctl_hdio-v-Xraw, and ioctl_hdio-v-Xverbose.
	* tests/Makefile.am (check_PROGRAMS): Add ioctl_hdio-success,
	ioctl_hdio-success-Xabbrev, ioctl_hdio-success-Xraw,
	ioctl_hdio-success-Xverbose, ioctl_hdio-success-v,
	ioctl_hdio-success-v-Xabbrev, ioctl_hdio-success-v-Xraw,
	and ioctl_hdio-success-v-Xverbose.
	* tests/gen_tests.in (ioctl_hdio, ioctl_hdio-Xabbrev, ioctl_hdio-Xraw,
	ioctl_hdio-Xverbose, ioctl_hdio-v, ioctl_hdio-v-Xabbrev,
	ioctl_hdio-v-Xraw, ioctl_hdio-v-Xverbose, ioctl_hdio-success,
	ioctl_hdio-success-Xabbrev, ioctl_hdio-success-Xraw,
	ioctl_hdio-success-Xverbose, ioctl_hdio-success-v,
	ioctl_hdio-success-v-Xabbrev, ioctl_hdio-success-v-Xraw,
	ioctl_hdio-success-v-Xverbose): New tests.
	* tests/ioctl_hdio.c: New file.
	* tests/ioctl_hdio-Xabbrev.c: Likewise.
	* tests/ioctl_hdio-Xraw.c: Likewise.
	* tests/ioctl_hdio-Xverbose.c: Likewise.
	* tests/ioctl_hdio-success.c: Likewise.
	* tests/ioctl_hdio-success-Xabbrev.c: Likewise.
	* tests/ioctl_hdio-success-Xraw.c: Likewise.
	* tests/ioctl_hdio-success-Xverbose.c: Likewise.
	* tests/ioctl_hdio-success-v.c: Likewise.
	* tests/ioctl_hdio-success-v-Xabbrev.c: Likewise.
	* tests/ioctl_hdio-success-v-Xraw.c: Likewise.
	* tests/ioctl_hdio-success-v-Xverbose.c: Likewise.
	* tests/ioctl_hdio-v.c: Likewise.
	* tests/ioctl_hdio-v-Xabbrev.c: Likewise.
	* tests/ioctl_hdio-v-Xraw.c: Likewise.
	* tests/ioctl_hdio-v-Xverbose.c: Likewise.
	* tests/pure_executables.list: Add ioctl_hdio, ioctl_hdio-Xabbrev,
	ioctl_hdio-Xraw, ioctl_hdio-Xverbose, ioctl_hdio-v,
	ioctl_hdio-v-Xabbrev, ioctl_hdio-v-Xraw, and ioctl_hdio-v-Xverbose.

2020-04-02  Dmitry V. Levin  <ldv@altlinux.org>

	linux/32: move wait4 and [gs]ettimeofday from syscallent.h to syscallent-time32.h
	According to Linux kernel include/uapi/asm-generic/unistd.h, starting
	with commit v5.1-rc1~160^2~1^2~3 __NR_wait4, __NR_gettimeofday, and
	__NR_settimeofday are placed under __ARCH_WANT_TIME32_SYSCALLS and
	therefore should belong to syscallent-time32.h along with other 32-bit
	time_t based syscalls.

	* linux/32/syscallent.h [169, 170, 260]: Move entries ...
	* linux/32/syscallent-time32.h: ... here.
	* time.c (SYS_FUNC(gettimeofday), SYS_FUNC(settimeofday)): Place under
	[HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_OLD_TIME64_SYSCALLS] guard.
	* wait.c (SYS_FUNC(wait4)): Likewise.

	Complements: v5.5-39-gcc7e89011 "linux/32: Split 32-bit time_t based syscalls into a separate header"

2020-04-02  Dmitry V. Levin  <ldv@altlinux.org>

	tests: fix another race condition in strace-DD.test.
	Apparently, timeout(1) utility first sends its signal to the child
	process, then installs a signal handler, and finally sends its signal to
	the process group.  This creates a race between timeout(1) and strace,
	the latter can manage to handle tracee syscall exit trap before a signal
	to the process group is delivered.

	* tests/setpgrp-exec.c: New file.
	* tests/strace-DD.test: Rewrite without use of timeout(1).
	* tests/strace-DD.expected: Remove.
	* tests/Makefile.am (check_PROGRAMS): Add setpgrp-exec.
	(EXTRA_DIST): Remove strace-DD.expected.

	Fixes: v5.4~106 "tests: check -DD and -DDD options"

2020-04-01  Dmitry V. Levin  <ldv@altlinux.org>

	tests: add a workaround for trace_creds test on mips o32.
	Since every mips o32 executable used by trace_creds test invokes
	prctl(PR_GET_FP_MODE) on their own and these calls are not filtered out
	by %creds, they have to be filtered out manually before comparison.

	* tests/init.sh (test_pure_prog_set) [$STRACE_ARCH == mips &&
	$MIPS_ABI == o32 && $NAME == *creds]: Filter out prctl(PR_GET_FP_MODE)
	from the strace log before comparison.

2020-04-01  Dmitry V. Levin  <ldv@altlinux.org>

	Lift experimental status from --seccomp-bpf feature.
	* strace.1.in (.SH OPTIONS) <--seccomp-bpf>: Remove " (experimental)".

	strace.1: enhance --seccomp-bpf description.
	* strace.1.in (.SH OPTIONS) <--seccomp-bpf>: Reword for clarity.

2020-04-01  Dmitry V. Levin  <ldv@altlinux.org>

	strace.1: fix --seccomp-bpf description.
	* strace.1.in (.SH OPTIONS) <--seccomp-bpf>: Remove the claim that this
	option implies -f, document that --seccomp-bpf has no effect unless
	-f/--follow-forks is also specified.

	Complements: v5.5-38-g2a7ba2a97 "strace: disable seccomp-bpf instead of enabling following forks"

2020-04-01  Dmitry V. Levin  <ldv@altlinux.org>

	ci: use kernel headers from Linux kernel v5.6.
	When Linux kernel merge window opens, changes of all sorts start to pour
	down, breaking UAPI in various ways.  This does not work for strace,
	we need a stable UAPI.

	* .gitlab-ci.yml (variables): Add KBRANCH.
	* .travis.yml (env:global): Likewise.

2020-03-31  Dmitry V. Levin  <ldv@altlinux.org>

	tests: fix get*id-creds tests on mips.
	Apparently, mips executables may invoke prctl(PR_GET_FP_MODE) on their
	own.  Since these calls are not filtered out by %creds, they have to be
	dealt with before comparison.

	* tests/getuid.test [$STRACE_ARCH == mips]: Filter out
	prctl(PR_GET_FP_MODE) from the log of %creds tests.

2020-03-31  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>

	Update ioctl entries from linux v5.6.
	* linux/32/ioctls_inc_align16.h: Update from linux v5.6
	using ioctls_gen.sh.
	* linux/32/ioctls_inc_align32.h: Likewise.
	* linux/32/ioctls_inc_align64.h: Likewise.
	* linux/64/ioctls_inc.h: Likewise.
	* linux/x32/ioctls_inc0.h: Likewise.
	* linux/s390/ioctls_arch0.h: Likewise.
	* linux/s390x/ioctls_arch0.h: Likewise.
	* NEWS: Mention this.

	maint: update for linux v5.6.
	* maint/ioctls_sym.sh: Add workarounds for media/v4l2-ioctl.h and
	sound/pcm.h headers.

2020-03-31  Eugene Syromyatnikov  <evgsyr@gmail.com>

	Update NEWS.

2020-03-31  Dmitry V. Levin  <ldv@altlinux.org>

	tests: fix race condition in strace-D.test.
	* tests/strace-D.test (test_parent_tracer_pid): Wait for the tracer
	completion before checking its log.

	Fixes: v5.4~110 "tests: check -D option"

2020-03-31  Dmitry V. Levin  <ldv@altlinux.org>

	tests: fix race condition in strace-DDD.test.
	* tests/tracer_ppid_pgid_sid.c (main): Print tracer pid.
	* tests/strace-DDD.test: Check tracer pid, wait for the tracer
	completion before checking its log.

	Reported-by: Eugene Syromyatnikov <evgsyr@gmail.com>
	Fixes: v5.4~106 "tests: check -DD and -DDD options"

2020-03-31  Dmitry V. Levin  <ldv@altlinux.org>

	tests: fix race condition in strace-DD.test.
	Apparently, $SLEEP_A_BIT might be insufficient for the tracer
	to complete.

	* tests/strace-DD.test: Find out the tracer pid and wait for the tracer
	completion before checking its log.

	Suggested-by: Eugene Syromyatnikov <evgsyr@gmail.com>
	Fixes: v5.4~106 "tests: check -DD and -DDD options"

2020-03-31  Dmitry V. Levin  <ldv@altlinux.org>

	tests: split getxxid test.
	getxxid used to test alpha-specific getxgid, getxuid, and getxgid
	syscalls.  Now each of these syscalls has its own test.
	This hopefully fixes trace_creds test on alpha.

	* tests/getxxid.c: Split into getxpid.c, getxuid.c, and getxgid.c.
	* tests/gen_tests.in (getxxid): Remove.
	(getxgid, getxpid, getxuid): New tests.
	* tests/pure_executables.list: Replace getxxid with getxgid, getxpid,
	and getxuid.
	* tests/.gitignore: Likewise.

2020-03-30  Dmitry V. Levin  <ldv@altlinux.org>

	ia64: rename getpagesize syscall entry to old_getpagesize.
	... to match the Linux kernel that introduced __NR_old_getpagesize
	by commit v5.0-rc1~164^2~4.

	* linux/ia64/syscallent.h [BASE_NR + 147]: Rename "getpagesize"
	to "old_getpagesize".

2020-03-30  Dmitry V. Levin  <ldv@altlinux.org>

	tests: disable umovestr_cached.test on mips o32 unless PTRACE_GET_SYSCALL_INFO works
	If PTRACE_GET_SYSCALL_INFO does not work, then the test has to be
	skipped on mips o32 because only the first four syscall arguments are
	obtained from registers on that architecture, remaining syscall
	arguments have to be fetched from the tracee memory.

	* tests/umovestr_cached.test [$STRACE_ARCH == mips && $MIPS_ABI == o32]:
	Skip the test if PTRACE_GET_SYSCALL_INFO does not work.

2020-03-30  Dmitry V. Levin  <ldv@altlinux.org>

	tests: re-enable umovestr_cached.test on ia64 if PTRACE_GET_SYSCALL_INFO works
	If PTRACE_GET_SYSCALL_INFO works, then the exception made for ia64
	earlier is not relevant.

	* tests/umovestr_cached.test [$STRACE_ARCH == ia64]: Do not skip
	the test if PTRACE_GET_SYSCALL_INFO works.

	Complements: v5.3~23 "tests: disable umovestr_cached.test on ia64"

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	Implement pidfd_getfd syscall decoding.
	Introduced by Linux commit v5.6-rc1~122^2~4 and wired up in Linux commit
	v5.6-rc1~122^2~3.

	* pidfd_getfd.c: New file.
	* Makefile.am (strace_SOURCES): Add it.
	* linux/syscallent-common.h ([BASE_NR + 438]): Wire up pidfd_getfd.
	* tests/pidfd_getfd.c: New file.
	* tests/pidfd_getfd-y.c: Likewise.
	* tests/.gitignore: Add pidfd_getfd and pidfd_getfd-y.
	* tests/pure_executables.list: Likewise.
	* tests/gen_tests.in: Add pidfd_getfd and pidfd_getfd-y tests.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	Move printpidfd from kcmp.c to util.c.
	And rename it to print_pid_fd in an attempt to minimise confusion with
	the kernel's pidfd concept.

	* kcmp (PRINT_FIELD_PIDFD, SYS_FUNC(kcmp)): Change printpidfd calls to
	print_pid_fd.
	(printpidfd): Move it...
	* util.c (print_pid_fd): ...here. Drop the static qualifier, update
	the comment describing why this is a stub.
	* defs.h (print_pid_fd): New declaration.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	open: implement openat2 syscall decoding.
	Introduced by Linux commit v5.6-rc1~133^2~2.

	* configure.ac (AC_CHECK_HEADERS): Check for linux/openat2.h.
	* defs.h (print_numeric_umode_t_64): New declaration.
	* linux/syscallent-common.h ([BASE_NR + 437]): Wire up openat2.
	* types/openat2.h: New file.
	* open.c: Include "print_fields.h", "types/openat2.h",
	and "xlat/open_resolve_flags.h".
	(sprint_open_modes64): Rename from sprint_open_modes, change argument
	type to uint64_t.
	(sprint_open_modes): New function, a wrapper for sprint_open_modes64
	with argument type of unsigned int.
	(tprint_open_modes64): Rename from tprint_open_modes, change argument
	type to uint64_t, call sprint_open_modes64 instead of sprint_open_modes.
	(tprint_open_modes): New function, a wrapper for tprint_open_modes64
	with an argument of type unsigned int.
	(print_open_how): New function.
	(SYS_FUNC(openat2)): New decoder.
	* printmode.c (print_numeric_umode_t_64): New function.
	* tests/openat2.c: New file.
	* tests/openat2-Xabbrev.c: Likewise.
	* tests/openat2-Xraw.c: Likewise.
	* tests/openat2-Xverbose.c: Likewise.
	* tests/openat2-v.c: Likewise.
	* tests/openat2-v-y.c: Likewise.
	* tests/openat2-v-y-Xabbrev.c: Likewise.
	* tests/openat2-v-y-Xraw.c: Likewise.
	* tests/openat2-v-y-Xverbose.c: Likewise.
	* tests/openat2-y.c: Likewise.
	* tests/.gitignore: Add openat2, openat2-Xabbrev, openat2-Xraw,
	openat2-Xverbose, openat2-v, openat2-v-y, openat2-v-y-Xabbrev,
	openat2-v-y-Xraw, openat2-v-y-Xverbose, openat2-y.
	* tests/pure_executables.list: Likewise.
	* tests/gen_tests.in: Add openat2, openat2-Xabbrev, openat2-Xraw,
	openat2-Xverbose, openat2-v, openat2-v-y, openat2-v-y-Xabbrev,
	openat2-v-y-Xraw, openat2-v-y-Xverbose, openat2-y tests.
	* xlat/open_resolve_flags.in: New file.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	Move print_nonzero_bytes from clone.c to util.c.
	As it is to be used elsewhere.

	* clone.c (print_nonzero_bytes): Move it...
	* util.c (print_nonzero_bytes): ...here.  Remove static qualifier.
	* defs.h (print_nonzero_bytes): New declaration.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	travis: remove ppc64le builds.
	They are currently unusable, permanently failing with
	"Disk quota exceeded" error diagnostics.

	* .travis.yml (arch: ppc64le): Remove.

2020-03-30  Dmitry V. Levin  <ldv@altlinux.org>

	xtensa: switch to PTRACE_GETREGS API.
	Implement PTRACE_GETREGS API introduced on xtensa by Linux kernel commit
	v2.6.13-rc1~68^2~366.

	* configure.ac [xtensa]: Remove arch_enable_Werror=no.
	* linux/xtensa/get_syscall_result.c: Remove.
	* Makefile.am (EXTRA_DIST): Remove it.
	* linux/xtensa/arch_regs.c (xtensa_regs): New variable.
	(ARCH_REGS_FOR_GETREGS, ARCH_PC_REG, ARCH_SP_REG): New macros.
	(xtensa_a2, ARCH_PC_PEEK_ADDR, ARCH_SP_PEEK_ADDR): Remove.
	* linux/xtensa/get_error.c (arch_get_error): Use xtensa_regs.a[2].
	* linux/xtensa/get_syscall_args.c (arch_get_syscall_args): Use
	xtensa_regs.a.
	* linux/xtensa/set_error.c (arch_set_error, arch_set_success): Use
	xtensa_regs.a[2].
	* NEWS: Mention this change.

2020-03-30  Dmitry V. Levin  <ldv@altlinux.org>

	sh64: switch to PTRACE_GETREGS API.
	Implement PTRACE_GETREGS API introduced on sh64 by Linux kernel commit
	v2.6.28-rc1~99^2~56.

	* configure.ac [sh64]: Remove arch_enable_Werror=no.
	* linux/sh64/arch_regs.h: Remove.
	* linux/sh64/get_syscall_result.c: Likewise.
	* Makefile.am (EXTRA_DIST): Remove them.
	* linux/sh64/arch_regs.c (sh64_regs): New variable.
	(ARCH_REGS_FOR_GETREGS, ARCH_PC_REG, ARCH_SP_REG): New macros.
	(sh64_r9, ARCH_PC_PEEK_ADDR, ARCH_SP_PEEK_ADDR): Remove.
	* linux/sh64/get_error.c (arch_get_error): Use sh64_regs.regs[9].
	* linux/sh64/get_scno.c (arch_get_scno): Use sh64_regs.regs[9].
	* linux/sh64/get_syscall_args.c (arch_get_syscall_args): Use sh64_regs.regs.
	* linux/sh64/set_error.c (arch_set_error, arch_set_success): Use
	sh64_regs.gr[9].
	* linux/sh64/set_scno.c (arch_set_scno): Use sh64_regs.regs[9].
	* NEWS: Mention this change.

2020-03-30  Dmitry V. Levin  <ldv@altlinux.org>

	sh: switch to PTRACE_GETREGS API.
	Implement PTRACE_GETREGS API introduced on sh by Linux kernel commit
	v2.6.28-rc1~99^2~56.

	* configure.ac [sh]: Remove arch_enable_Werror=no.
	* linux/sh/get_syscall_result.c: Remove.
	* Makefile.am (EXTRA_DIST): Remove it.
	* linux/sh/arch_regs.c (sh_regs): New variable.
	(ARCH_REGS_FOR_GETREGS, ARCH_PC_REG, ARCH_SP_REG): New macros.
	(sh_r0, ARCH_PC_PEEK_ADDR, ARCH_SP_PEEK_ADDR): Remove.
	* linux/sh/arch_getrval2.c (getrval2): Use sh_regs.regs[1].
	* linux/sh/get_error.c (arch_get_error): Use sh_regs.regs[0].
	* linux/sh/get_scno.c (arch_get_scno): Use sh_regs.regs[3].
	* linux/sh/get_syscall_args.c (arch_get_syscall_args): Use sh_regs.regs.
	* linux/sh/set_error.c (arch_set_error, arch_set_success): Use
	sh_regs.gr[0].
	* linux/sh/set_scno.c (arch_set_scno): Use sh_regs.regs[3].
	* NEWS: Mention this change.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: use PRINT_FIELD_* macros, add abbreviating in print_v4l2_queryctrl
	* v4l2.c (print_v4l2_queryctrl): Use PRINT_FIELD_XVAL for the type field
	printing; use PRINT_FIELD_D for minimum, maximum, step, and
	default_value fields printing; use PRINT_FIELD_FLAGS for the flags field
	printing; print minimum, maximum, step, default_value, and flags fields
	only if abbrev(tcp) is not set.
	* tests/ioctl_v4l2-success.c: Update expected output.

	Suggested-by: Philippe De Muyter <phdm@macqel.be>
	References: https://github.com/strace/strace/issues/63

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: simplify print_v4l2_queryctrl and use print_v4l2_cid.
	Instead of fragile hacks aroung V4L2_CTRL_FLAG_NEXT_CTRL flag, (always)
	save the id field on entering, restore it later on exiting, and print it
	second time only if it has changed.  That also simplifies the flow
	with clear entering/exiting code parts separation.

	The usage of print_v4l2_cid for id field printing has introduced several
	(anticipated) output formatting changes, hence the changes in expected
	output.

	* v4l2.c (print_v4l2_queryctrl): Save c.id on entering, print it using
	print_v4l2_cid with next_flags set to true, and return 0; remove
	"entering(tcp) || get_tcb_priv_ulong(tcp)" logic; restore the entering
	id value  into entry_id variable on exiting, compare it to the exiting
	c.id value and print c.id again if it is different; do not check if tcp
	is exiting; always return RVAL_IOCTL_DECODED at the end of the function.
	* tests/ioctl_v4l2.c: Update expected output.
	* tests/ioctl_v4l2-success.c: Likewise.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: add support for V4L2_CTRL_FLAG_NEXT_* flags printing to print_v4l2_cid
	* v4l2.c: Move "xlat/v4l2_control_query_flags.h" inclusion before
	print_v4l2_cid.
	(print_v4l2_cid): Remove const qualifier from cid, add bool next_flags
	argument; print v4l2_control_query_flags and NAND them from cid if they
	are present.
	(print_v4l2_control): Pass false as next_flags to the print_v4l2_cid
	call.

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

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	xlat: add generation of flags-related fields.
	Generate known flags mask and maximum string length.

	* xlat.h (struct xlat): Add fields flags_strsz and flags_mask.
	* xlat/gen.sh (print_xlat, print_xlat_pair): Add generation of
	XLAT_VAL_n and XLAT_STR_n macros.
	(gen_header): Generate flags_strsz and flags_mask fields' values using
	the generated XLAT_VAL_n and XLAT_STR_n macros, undefine them
	afterwards.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: handle -Xraw in print_v4l2_cid.
	Print class ID as simple hex value in that case.

	* v4l2.c (print_v4l2_cid): Print cid as hex and return if
	xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: use xsprintf instead of asprintf in print_v4l2_cid.
	Avoid an allocation and steamline code a bit.

	* v4l2.c (print_v4l2_cid): Change tmp_str to a stack-allocated char array,
	print to it with xsprintf, eliminate no longer needed free() call.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: provide V4L2_CTRL_FLAG_NEXT_CTRL in an xlat.
	* xlat/v4l2_control_query_flags.in: New file.
	* v4l2.c: Include "xlat/v4l2_control_query_flags.h".
	(print_v4l2_queryctrl): Remove "ifdef V4L2_CTRL_FLAG_NEXT_CTRL" guard.
	* tests/ioctl_v4l2.c [!V4L2_CTRL_FLAG_NEXT_CTRL]
	(V4L2_CTRL_FLAG_NEXT_CTRL): New macro.
	(main) [!V4L2_CTRL_FLAG_NEXT_CTRL]: Remove.

	References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: decode frame intervals/sizes unconditionally.
	* configure.ac (AC_CHECK_TYPES): Check for struct v4l2_frmsizeenum
	and struct v4l2_frmivalenum.
	* types/v4l2.h (struct_v4l2_frmsize_discrete, struct_v4l2_frmsize_stepwise,
	struct_v4l2_frmsizeenum, struct_v4l2_frmival_stepwise,
	struct_v4l2_frmivalenum): New type definitions.
	v4l2.c: Remove "ifdef VIDIOC_ENUM_FRAMESIZES" guards.
	* xlat/v4l2_ioctl_cmds.in (VIDIOC_ENUM_FRAMESIZES,
	VIDIOC_ENUM_FRAMEINTERVALS): Uncomment.

	References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: always decode VIDIOC_*_EXT_CTRLS ioctl commands.
	* types/v4l2.h (struct_v4l2_area, struct_v4l2_ext_control,
	struct_v4l2_ext_controls): New type definitions.
	* v4l2.c (print_v4l2_ext_control, print_v4l2_ext_controls): Do not guard
	with VIDIOC_S_EXT_CTRLS anymore.
	(v4l2_ioctl) <case VIDIOC_S_EXT_CTRLS, case VIDIOC_TRY_EXT_CTRLS, case
	VIDIOC_G_EXT_CTRLS>: Likewise.
	(print_v4l2_ext_control): Do not guard size and string field printing
	with HAVE_STRUCT_V4L2_EXT_CONTROL_STRING.
	* xlat/v4l2_ioctl_cmds.in (VIDIOC_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS,
	VIDIOC_TRY_EXT_CTRLS): Uncomment.

	References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: bundle struct v4l2_format and related types.
	* configure.ac (AC_CHECK_TYPES): Check for struct v4l2_meta_format,
	struct v4l2_pix_format_mplane, struct v4l2_plane_pix_format,
	and struct v4l2_sdr_format.
	* types/v4l2.h (struct_v4l2_clip, struct_v4l2_format): Typedef to an anonymous
	type definition.
	(struct_v4l2_pix_format, struct_v4l2_plane_pix_format,
	struct_v4l2_pix_format_mplane, struct_v4l2_window,
	struct_v4l2_vbi_format, struct_v4l2_sliced_vbi_format,
	struct_v4l2_sliced_vbi_cap, struct_v4l2_sdr_format,
	struct_v4l2_meta_format): New typedefs.
	* v4l2.c (print_v4l2_format_fmt): Remove guard macros, decode
	fmt.win.global_alpha and fmt.sdr.buffersize only when they are non-zero.

	References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: provide struct v4l2_capability definition.
	* types/v4l2.h (struct_v4l2_capability): New typedef.
	* v4l2.c: Check struct v4l2_capability
	with CHECK_V4L2_STRUCT_RESERVED_SIZE.
	(print_v4l2_capability): Change type of caps variable
	to struct_v4l2_capability; drop HAVE_STRUCT_V4L2_CAPABILITY_DEVICE_CAPS
	guard; print device_caps field only if it's non-zero.

	References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: bundle struct v4l2_create_buffers definition.
	* configure.ac (AC_CHECK_TYPES): Add a check for
	struct v4l2_create_buffers definition.
	* types/v4l2.h: New file.
	* v4l2.c (DEF_MPERS_TYPE(struct_v4l2_create_buffers)): Remove
	VIDIOC_CREATE_BUFS guard.
	(struct_v4l2_create_buffers): Remove typedef.
	(struct_v4l2_buffer, struct_v4l2_clip, struct_v4l2_ext_control,
	struct_v4l2_ext_controls, struct_v4l2_format, struct_v4l2_framebuffer,
	struct_v4l2_input, struct_v4l2_standard): Move to types/v4l2.h.
	[HAVE_STRUCT_V4L2_CREATE_BUFFERS]: Check struct v4l2_create_buffers
	with CHECK_V4L2_STRUCT_RESERVED_SIZE.
	* xlat/v4l2_ioctl_cmds.in (VIDIOC_CREATE_BUFS): Uncomment.

	References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: add V4L2 ioctl command constant macros.
	For now, only those that we support, and only for those we don't
	conditionalise in code, since the fall-back definitions require
	the relevant type definitions, and not all of them are always
	available.

	* xlat/v4l2_ioctl_cmds.in: New file.
	* v4l2.c: Include "xlat/v4l2_ioctl_cmds.h" under XLAT_MACRO_ONLY
	definition.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: add shorthand macros for v4l2 type checks.
	Some wrappers for common static_assert checks.

	* v4l2.c (CHECK_V4L2_STRUCT_SIZE, CHECK_V4L2_RESERVED_SIZE.
	CHECK_V4L2_STRUCT_RESERVED_SIZE): New macros.

	References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: improve buffer flag decoding.
	* xlat/v4l2_buf_flags.in: Add fallback values.
	* xlat/v4l2_buf_flags_masks.in: New file.
	* xlat/v4l2_buf_flags_ts_src.in: Likewise.
	* xlat/v4l2_buf_flags_ts_type.in: Likewise.
	* v4l2.c: Include xlat/v4l2_buf_flags_ts_type.h,
	xlat/v4l2_buf_flags_ts_src.h, xlat/v4l2_buf_flags_masks.h.
	(print_v4l2_buffer_flags): New function.
	(print_v4l2_buffer): Call print_v4l2_buffer_flags for printing flags field.
	* tests/ioctl_v4l2-success.c: Update expected output.

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

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: use standard kernel version printing routine.
	The way kernel version is printed in print_v4l2_capability was
	non-standard, didn't respect xlat styles, and was incorrect for major
	values 256 and greater.  Moreover, there is a routine that exists
	specifically for this purpose now.  Let's use it and solve all
	the aforementioned issues.

	* v4l2.c (print_v4l2_capability): Use print_kernel_version for the
	kernel version printing.
	* tests/ioctl_v4l2-success.c: Update the expected output.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: add v4l2 ioctl success injection-based tests.
	* tests/ioctl_v4l2-success.c: New file.
	* tests/ioctl_v4l2-success-Xabbrev.c: Likewise.
	* tests/ioctl_v4l2-success-Xraw.c: Likewise.
	* tests/ioctl_v4l2-success-Xverbose.c: Likewise.
	* tests/ioctl_v4l2-success-v.c: Likewise.
	* tests/ioctl_v4l2-success-v-Xabbrev.c: Likewise.
	* tests/ioctl_v4l2-success-v-Xraw.c: Likewise.
	* tests/ioctl_v4l2-success-v-Xverbose.c: Likewise.
	* tests/.gitignore: Add ioctl_v4l2-success,
	ioctl_v4l2-success-Xabbrev, ioctl_v4l2-success-Xraw,
	ioctl_v4l2-success-Xverbose, ioctl_v4l2-success-v,
	ioctl_v4l2-success-v-Xabbrev, ioctl_v4l2-success-v-Xraw,
	ioctl_v4l2-success-v-Xverbose.
	* tests/Makefile.am (check_PROGRAMS): Likewise.
	* tests/gen_tests.in: Add ioctl_v4l2-success,
	ioctl_v4l2-success-Xabbrev, ioctl_v4l2-success-Xraw,
	ioctl_v4l2-success-Xverbose, ioctl_v4l2-success-v,
	ioctl_v4l2-success-v-Xabbrev, ioctl_v4l2-success-v-Xraw tests,
	* tests/tests.h (struct strval32): New type, similar to struct strval64.

	tests: use ioctl-success.sh for ioctl_perf-success test.
	* tests/ioctl_perf-success.test: Remove.
	* tests/Makefile.am (DECODER_TESTS): Remove it.
	* tests/gen_tests.in: Add ioctl_perf-success test.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: always check ioctl_perf-success.
	It makes little sense to conditionalise this test, since it bundles
	all the required definitions and types in case of absense of them
	in the kernel headers.

	* tests/ioctl_perf-success.c: Remove HAVE_LINUX_PERF_EVENT_H guard,
	update directives' indentation.
	(include <linux/perf_event.h>): Put under HAVE_LINUX_PERF_EVENT_H guard.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: add a runner for ioctl decoder tests that use success injection.
	* tests/ioctl-success.sh: New file.
	* tests/Makefile.am (EXTRA_DIST): Add it.

	v4l2: print capability and rxsubchans fields of struct v4l2_tuner as flags
	* v4l2.c (print_v4l2_tuner): Use printflags instead of printxval
	for printing capability and rxsubchans fields of struct v4l2_tuner.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: comment unknown tuner types with "V4L2_TUNER_???" and not "V4L2_TUNER_TYPE_???"
	All the xlat constants include only "V4L2_TUNER_" part.

	* v4l2.c (print_v4l2_tuner) <printxval(v4l2_tuner_types, ...)>: Change
	the last argument from V4L2_TUNER_TYPE_???" to "V4L2_TUNER_???"

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: do not print struct v4l2_control.value field name second time on exiting
	To conform the output formatting in other places.

	* v4l2.c (print_v4l2_control): Do not print "value=" on exiting to
	prefix the changed value.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: print exiting structure fields as a separate structure.
	To conform with the output formatting in other places.

	* v4l2.c (print_v4l2_format, print_v4l2_streamparm): Close the structure
	with "}" before the arrow and open it again with "{".

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: print struct v4l2_standard.framelines as unsigned.
	Since it is defined that way.

	* v4l2.c (print_v4l2_standard): Print framelines as unsigned.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: print struct v4l2_outputparm.outputmode using v4l2_capture_modes flags
	As it is treated the same way as struct v4l2_captureparm.capturemode.

	* v4l2.c (print_v4l2_streamparm): Print struct
	v4l2_outputparm.outputmode using v4l2_capture_modes flags.

2020-03-30  Eugene Syromyatnikov  <evgsyr@gmail.com>

	v4l2: print struct v4l2_{capture,output}parm.extendedmode as hex.
	As it is likely to be treated similarly to capturemode/outputmode, which
	are bit sets.

