-
Dmitry V. Levin authored
Starting with Linux kernel commit v5.6-rc1~93^2~102, the definition of struct v4l2_buffer provided by the kernel depends on the flavour of struct timeval provided by libc. This effectively means that we cannot use the definition provided by the kernel, neither in the decoder nor in tests. * kernel_v4l2_types.h: New file. * Makefile.am (libstrace_a_SOURCES): Add it. * types/v4l2.h (struct_v4l2_buffer): Remove. * v4l2.c: Include "kernel_v4l2_types.h". Replace struct_v4l2_buffer with kernel_v4l2_buffer_t. (VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF, VIDIOC_PREPARE_BUF): Redefine. (print_v4l2_buffer): Use print_timeval64_data_size to print timestamp field. * linux/32/ioctls_inc_align16.h (VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF, VIDIOC_PREPARE_BUF): Update. * linux/32/ioctls_inc_align32.h: Likewise. * linux/32/ioctls_inc_align64.h: Likewise. * xlat/v4l2_ioctl_cmds.in (VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF, VIDIOC_PREPARE_BUF): Comment out. * tests/ioctl_v4l2.c: Include "kernel_v4l2_types.h". (main): Replace struct_v4l2_buffer with kernel_v4l2_buffer_t. (VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF, VIDIOC_PREPARE_BUF): Redefine. * tests/ioctl_v4l2-success.c: Likewise. Resolves: https://github.com/strace/strace/issues/133
1b57b224