/* SPDX-License-Identifier: GPL-2.0-or-later *//* * V4L2 controls support header. * * Copyright (C) 2010 Hans Verkuil <hverkuil@xs4all.nl> */#ifndef _V4L2_CTRLS_H#define _V4L2_CTRLS_H#include<linux/list.h>#include<linux/mutex.h>#include<linux/videodev2.h>#include<media/media-request.h>/* * Include the stateless codec compound control definitions. * This will move to the public headers once this API is fully stable. */#include<media/mpeg2-ctrls.h>#include<media/fwht-ctrls.h>#include<media/h264-ctrls.h>#include<media/vp8-ctrls.h>#include<media/hevc-ctrls.h>/* forward references */structfile;structv4l2_ctrl_handler;structv4l2_ctrl_helper;structv4l2_ctrl;structvideo_device;structv4l2_subdev;structv4l2_subscribed_event;structv4l2_fh;structpoll_table_struct;/** * union v4l2_ctrl_ptr - A pointer to a control value. * @p_s32: Pointer to a 32-bit signed value. * @p_s64: Pointer to a 64-bit signed value. * @p_u8: Pointer to a 8-bit unsigned value. * @p_u16: Pointer to a 16-bit unsigned value. * @p_u32: Pointer to a 32-bit unsigned value. * @p_char: Pointer to a string. * @p_mpeg2_slice_params: Pointer to a MPEG2 slice parameters structure. * @p_mpeg2_quantization: Pointer to a MPEG2 quantization data structure. * @p_fwht_params: Pointer to a FWHT stateless parameters structure. * @p_h264_sps: Pointer to a struct v4l2_ctrl_h264_sps. * @p_h264_pps: Pointer to a struct v4l2_ctrl_h264_pps. * @p_h264_scaling_matrix: Pointer to a struct v4l2_ctrl_h264_scaling_matrix. * @p_h264_slice_params: Pointer to a struct v4l2_ctrl_h264_slice_params. * @p_h264_decode_params: Pointer to a struct v4l2_ctrl_h264_decode_params. * @p_vp8_frame_header: Pointer to a VP8 frame header structure. * @p_hevc_sps: Pointer to an HEVC sequence parameter set structure. * @p_hevc_pps: Pointer to an HEVC picture parameter set structure. * @p_hevc_slice_params: Pointer to an HEVC slice parameters structure. * @p_area: Pointer to an area. * @p: Pointer to a compound value. * @p_const: Pointer to a constant compound value. */unionv4l2_ctrl_ptr{s32*p_s32;s64*p_s64;u8*p_u8;u16*p_u16;u32*p_u32;char*p_char;structv4l2_ctrl_mpeg2_slice_params*p_mpeg2_slice_params;structv4l2_ctrl_mpeg2_quantization*p_mpeg2_quantization;structv4l2_ctrl_fwht_params*p_fwht_params;structv4l2_ctrl_h264_sps*p_h264_sps;structv4l2_ctrl_h264_pps*p_h264_pps;struct