diff options
author | Eugene Syromyatnikov <evgsyr@gmail.com> | 2020-01-29 19:45:29 +0100 |
---|---|---|
committer | Eugene Syromyatnikov <evgsyr@gmail.com> | 2020-03-30 23:14:23 +0200 |
commit | af9cb5394c6072a1f07465351137b6bec05e3c7b (patch) | |
tree | 85a58f9608c925ba04760ecbd3620c2268db04cf | |
parent | 3296cf5e0fd661d3f8ebf5c432d019727467cb5c (diff) | |
download | strace-af9cb5394c6072a1f07465351137b6bec05e3c7b.tar.gz |
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
-rw-r--r-- | tests/ioctl_v4l2.c | 10 | ||||
-rw-r--r-- | v4l2.c | 3 | ||||
-rw-r--r-- | xlat/v4l2_control_query_flags.in | 2 |
3 files changed, 7 insertions, 8 deletions
diff --git a/tests/ioctl_v4l2.c b/tests/ioctl_v4l2.c index e929a25da..4e9ed4881 100644 --- a/tests/ioctl_v4l2.c +++ b/tests/ioctl_v4l2.c @@ -15,6 +15,10 @@ #include <linux/types.h> #include <linux/videodev2.h> +#ifndef V4L2_CTRL_FLAG_NEXT_CTRL +# define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 +#endif + #ifndef V4L2_CTRL_CLASS_DETECT # define V4L2_CTRL_CLASS_DETECT 0x00a30000 #endif @@ -1156,16 +1160,10 @@ main(void) struct v4l2_queryctrl *const p_v4l2_queryctrl = page_end - sizeof(*p_v4l2_queryctrl); ioctl(-1, VIDIOC_QUERYCTRL, p_v4l2_queryctrl); -#ifdef V4L2_CTRL_FLAG_NEXT_CTRL printf("ioctl(-1, %s, {id=" XLAT_FMT "|%#x" NRAW(" /* V4L2_CID_??? */") "}) = -1 EBADF (%m)\n", XLAT_STR(VIDIOC_QUERYCTRL), XLAT_ARGS(V4L2_CTRL_FLAG_NEXT_CTRL), p_v4l2_queryctrl->id & ~V4L2_CTRL_FLAG_NEXT_CTRL); -#else - printf("ioctl(-1, %s, {id=%#x" NRAW(" /* V4L2_CID_??? */})") - " = -1 EBADF (%m)\n", - XLAT_STR(VIDIOC_QUERYCTRL), p_v4l2_queryctrl->id); -#endif TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_queryctrl, p_queryctrl); p_queryctrl->id = V4L2_CID_SATURATION; @@ -768,6 +768,7 @@ print_v4l2_tuner(struct tcb *const tcp, const kernel_ulong_t arg, #include "xlat/v4l2_control_types.h" #include "xlat/v4l2_control_flags.h" +#include "xlat/v4l2_control_query_flags.h" static int print_v4l2_queryctrl(struct tcb *const tcp, const kernel_ulong_t arg) @@ -789,7 +790,6 @@ print_v4l2_queryctrl(struct tcb *const tcp, const kernel_ulong_t arg) } if (entering(tcp) || get_tcb_priv_ulong(tcp)) { -#ifdef V4L2_CTRL_FLAG_NEXT_CTRL const unsigned long next = c.id & V4L2_CTRL_FLAG_NEXT_CTRL; set_tcb_priv_ulong(tcp, next); if (next) { @@ -797,7 +797,6 @@ print_v4l2_queryctrl(struct tcb *const tcp, const kernel_ulong_t arg) tprints("|"); c.id &= ~V4L2_CTRL_FLAG_NEXT_CTRL; } -#endif printxval(v4l2_control_ids, c.id, "V4L2_CID_???"); } diff --git a/xlat/v4l2_control_query_flags.in b/xlat/v4l2_control_query_flags.in new file mode 100644 index 000000000..3d32bf5de --- /dev/null +++ b/xlat/v4l2_control_query_flags.in @@ -0,0 +1,2 @@ +V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 +V4L2_CTRL_FLAG_NEXT_COMPOUND 0x40000000 |