/* 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/hevc-ctrls.h>/* forward references */structfile;structpoll_table_struct;structv4l2_ctrl;structv4l2_ctrl_handler;structv4l2_ctrl_helper;structv4l2_fh;structv4l2_fwnode_device_properties;structv4l2_subdev;structv4l2_subscribed_event;structvideo_device;/** * 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_sequence: Pointer to a MPEG2 sequence structure. * @p_mpeg2_picture: Pointer to a MPEG2 picture structure. * @p_mpeg2_quantisation: Pointer to a MPEG2 quantisation 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_h264_pred_weights: Pointer to a struct v4l2_ctrl_h264_pred_weights. * @p_vp8_frame: Pointer to a VP8 frame params structure. * @p_vp9_compressed_hdr_probs: Pointer to a VP9 frame compressed header probs structure. * @p_vp9_frame: Pointer to a VP9 frame params 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_hdr10_cll: Pointer to an HDR10 Content Light Level structure. * @p_hdr10_mastering: Pointer to an HDR10 Mastering Display 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_sequence*p_mpeg2_sequence;