/* This file is auto-generated by make sync-with-kernel */
#include "linux/dvb/dmx.h"
#include "linux/dvb/frontend.h"
+#include "linux/v4l2-subdev.h"
#include "linux/videodev2.h"
#include "ioctl_32.h"
#include "ioctl_64.h"
enum v4l2_priority prio;
/* ioctl structs */
- struct dmx_pes_filter_params p_dmx_pes_filter_params;
- struct dmx_sct_filter_params p_dmx_sct_filter_params;
- struct dmx_stc p_dmx_stc;
- struct dtv_properties p_dtv_properties;
- struct dvb_diseqc_master_cmd p_dvb_diseqc_master_cmd;
- struct dvb_diseqc_slave_reply p_dvb_diseqc_slave_reply;
- struct dvb_frontend_event p_dvb_frontend_event;
- struct dvb_frontend_info p_dvb_frontend_info;
- struct dvb_frontend_parameters p_dvb_frontend_parameters;
- struct v4l2_audio p_v4l2_audio;
- struct v4l2_audioout p_v4l2_audioout;
- struct v4l2_buffer p_v4l2_buffer;
- struct v4l2_capability p_v4l2_capability;
- struct v4l2_control p_v4l2_control;
- struct v4l2_create_buffers p_v4l2_create_buffers;
- struct v4l2_crop p_v4l2_crop;
- struct v4l2_cropcap p_v4l2_cropcap;
- struct v4l2_dbg_chip_info p_v4l2_dbg_chip_info;
- struct v4l2_dbg_register p_v4l2_dbg_register;
- struct v4l2_decoder_cmd p_v4l2_decoder_cmd;
- struct v4l2_dv_timings p_v4l2_dv_timings;
- struct v4l2_dv_timings_cap p_v4l2_dv_timings_cap;
- struct v4l2_enc_idx p_v4l2_enc_idx;
- struct v4l2_encoder_cmd p_v4l2_encoder_cmd;
- struct v4l2_enum_dv_timings p_v4l2_enum_dv_timings;
- struct v4l2_event p_v4l2_event;
- struct v4l2_event_subscription p_v4l2_event_subscription;
- struct v4l2_exportbuffer p_v4l2_exportbuffer;
- struct v4l2_ext_controls p_v4l2_ext_controls;
- struct v4l2_fmtdesc p_v4l2_fmtdesc;
- struct v4l2_format p_v4l2_format;
- struct v4l2_framebuffer p_v4l2_framebuffer;
- struct v4l2_frequency p_v4l2_frequency;
- struct v4l2_frequency_band p_v4l2_frequency_band;
- struct v4l2_frmivalenum p_v4l2_frmivalenum;
- struct v4l2_frmsizeenum p_v4l2_frmsizeenum;
- struct v4l2_hw_freq_seek p_v4l2_hw_freq_seek;
- struct v4l2_input p_v4l2_input;
- struct v4l2_jpegcompression p_v4l2_jpegcompression;
- struct v4l2_modulator p_v4l2_modulator;
- struct v4l2_output p_v4l2_output;
- struct v4l2_queryctrl p_v4l2_queryctrl;
- struct v4l2_querymenu p_v4l2_querymenu;
- struct v4l2_requestbuffers p_v4l2_requestbuffers;
- struct v4l2_selection p_v4l2_selection;
- struct v4l2_sliced_vbi_cap p_v4l2_sliced_vbi_cap;
- struct v4l2_standard p_v4l2_standard;
- struct v4l2_streamparm p_v4l2_streamparm;
- struct v4l2_tuner p_v4l2_tuner;
+ struct dmx_pes_filter_params p_dmx_pes_filter_params;
+ struct dmx_sct_filter_params p_dmx_sct_filter_params;
+ struct dmx_stc p_dmx_stc;
+ struct dtv_properties p_dtv_properties;
+ struct dvb_diseqc_master_cmd p_dvb_diseqc_master_cmd;
+ struct dvb_diseqc_slave_reply p_dvb_diseqc_slave_reply;
+ struct dvb_frontend_event p_dvb_frontend_event;
+ struct dvb_frontend_info p_dvb_frontend_info;
+ struct dvb_frontend_parameters p_dvb_frontend_parameters;
+ struct v4l2_audio p_v4l2_audio;
+ struct v4l2_audioout p_v4l2_audioout;
+ struct v4l2_buffer p_v4l2_buffer;
+ struct v4l2_capability p_v4l2_capability;
+ struct v4l2_control p_v4l2_control;
+ struct v4l2_create_buffers p_v4l2_create_buffers;
+ struct v4l2_crop p_v4l2_crop;
+ struct v4l2_cropcap p_v4l2_cropcap;
+ struct v4l2_dbg_chip_info p_v4l2_dbg_chip_info;
+ struct v4l2_dbg_register p_v4l2_dbg_register;
+ struct v4l2_decoder_cmd p_v4l2_decoder_cmd;
+ struct v4l2_dv_timings p_v4l2_dv_timings;
+ struct v4l2_dv_timings_cap p_v4l2_dv_timings_cap;
+ struct v4l2_enc_idx p_v4l2_enc_idx;
+ struct v4l2_encoder_cmd p_v4l2_encoder_cmd;
+ struct v4l2_enum_dv_timings p_v4l2_enum_dv_timings;
+ struct v4l2_event p_v4l2_event;
+ struct v4l2_event_subscription p_v4l2_event_subscription;
+ struct v4l2_exportbuffer p_v4l2_exportbuffer;
+ struct v4l2_ext_controls p_v4l2_ext_controls;
+ struct v4l2_fmtdesc p_v4l2_fmtdesc;
+ struct v4l2_format p_v4l2_format;
+ struct v4l2_framebuffer p_v4l2_framebuffer;
+ struct v4l2_frequency p_v4l2_frequency;
+ struct v4l2_frequency_band p_v4l2_frequency_band;
+ struct v4l2_frmivalenum p_v4l2_frmivalenum;
+ struct v4l2_frmsizeenum p_v4l2_frmsizeenum;
+ struct v4l2_hw_freq_seek p_v4l2_hw_freq_seek;
+ struct v4l2_input p_v4l2_input;
+ struct v4l2_jpegcompression p_v4l2_jpegcompression;
+ struct v4l2_modulator p_v4l2_modulator;
+ struct v4l2_output p_v4l2_output;
+ struct v4l2_queryctrl p_v4l2_queryctrl;
+ struct v4l2_querymenu p_v4l2_querymenu;
+ struct v4l2_requestbuffers p_v4l2_requestbuffers;
+ struct v4l2_selection p_v4l2_selection;
+ struct v4l2_sliced_vbi_cap p_v4l2_sliced_vbi_cap;
+ struct v4l2_standard p_v4l2_standard;
+ struct v4l2_streamparm p_v4l2_streamparm;
+ struct v4l2_subdev_crop p_v4l2_subdev_crop;
+ struct v4l2_subdev_edid p_v4l2_subdev_edid;
+ struct v4l2_subdev_format p_v4l2_subdev_format;
+ struct v4l2_subdev_frame_interval p_v4l2_subdev_frame_interval;
+ struct v4l2_subdev_frame_interval_enum p_v4l2_subdev_frame_interval_enum;
+ struct v4l2_subdev_frame_size_enum p_v4l2_subdev_frame_size_enum;
+ struct v4l2_subdev_mbus_code_enum p_v4l2_subdev_mbus_code_enum;
+ struct v4l2_subdev_selection p_v4l2_subdev_selection;
+ struct v4l2_tuner p_v4l2_tuner;
};
#define ioc(type, cmd) { CMD32_##cmd, CMD64_##cmd, cmd, #type, #cmd }
const char *name;
} ioctls[] = {
/* ioctl structs */
- ioc(demux, DMX_ADD_PID), /* __u16 */
- ioc(demux, DMX_GET_CAPS), /* dmx_caps_t */
- ioc(demux, DMX_GET_PES_PIDS), /* __u16[5] */
- ioc(demux, DMX_GET_STC), /* struct dmx_stc */
- ioc(demux, DMX_REMOVE_PID), /* __u16 */
- ioc(demux, DMX_SET_BUFFER_SIZE), /* void */
- ioc(demux, DMX_SET_FILTER), /* struct dmx_sct_filter_params */
- ioc(demux, DMX_SET_PES_FILTER), /* struct dmx_pes_filter_params */
- ioc(demux, DMX_SET_SOURCE), /* dmx_source_t */
- ioc(demux, DMX_START), /* void */
- ioc(demux, DMX_STOP), /* void */
- ioc(frontend, FE_DISEQC_RECV_SLAVE_REPLY), /* struct dvb_diseqc_slave_reply */
- ioc(frontend, FE_DISEQC_RESET_OVERLOAD), /* void */
- ioc(frontend, FE_DISEQC_SEND_BURST), /* void */
- ioc(frontend, FE_DISEQC_SEND_MASTER_CMD), /* struct dvb_diseqc_master_cmd */
- ioc(frontend, FE_DISHNETWORK_SEND_LEGACY_CMD), /* void */
- ioc(frontend, FE_ENABLE_HIGH_LNB_VOLTAGE), /* void */
- ioc(frontend, FE_GET_EVENT), /* struct dvb_frontend_event */
- ioc(frontend, FE_GET_FRONTEND), /* struct dvb_frontend_parameters */
- ioc(frontend, FE_GET_INFO), /* struct dvb_frontend_info */
- ioc(frontend, FE_GET_PROPERTY), /* struct dtv_properties */
- ioc(frontend, FE_READ_BER), /* __u32 */
- ioc(frontend, FE_READ_SIGNAL_STRENGTH), /* __u16 */
- ioc(frontend, FE_READ_SNR), /* __u16 */
- ioc(frontend, FE_READ_STATUS), /* fe_status_t */
- ioc(frontend, FE_READ_UNCORRECTED_BLOCKS), /* __u32 */
- ioc(frontend, FE_SET_FRONTEND), /* struct dvb_frontend_parameters */
- ioc(frontend, FE_SET_FRONTEND_TUNE_MODE), /* void */
- ioc(frontend, FE_SET_PROPERTY), /* struct dtv_properties */
- ioc(frontend, FE_SET_TONE), /* void */
- ioc(frontend, FE_SET_VOLTAGE), /* void */
- ioc(video, VIDIOC_CREATE_BUFS), /* struct v4l2_create_buffers */
- ioc(video, VIDIOC_CROPCAP), /* struct v4l2_cropcap */
- ioc(video, VIDIOC_DBG_G_CHIP_INFO), /* struct v4l2_dbg_chip_info */
- ioc(video, VIDIOC_DBG_G_REGISTER), /* struct v4l2_dbg_register */
- ioc(video, VIDIOC_DBG_S_REGISTER), /* struct v4l2_dbg_register */
- ioc(video, VIDIOC_DECODER_CMD), /* struct v4l2_decoder_cmd */
- ioc(video, VIDIOC_DQBUF), /* struct v4l2_buffer */
- ioc(video, VIDIOC_DQEVENT), /* struct v4l2_event */
- ioc(video, VIDIOC_DV_TIMINGS_CAP), /* struct v4l2_dv_timings_cap */
- ioc(video, VIDIOC_ENCODER_CMD), /* struct v4l2_encoder_cmd */
- ioc(video, VIDIOC_ENUMAUDIO), /* struct v4l2_audio */
- ioc(video, VIDIOC_ENUMAUDOUT), /* struct v4l2_audioout */
- ioc(video, VIDIOC_ENUMINPUT), /* struct v4l2_input */
- ioc(video, VIDIOC_ENUMOUTPUT), /* struct v4l2_output */
- ioc(video, VIDIOC_ENUMSTD), /* struct v4l2_standard */
- ioc(video, VIDIOC_ENUM_DV_TIMINGS), /* struct v4l2_enum_dv_timings */
- ioc(video, VIDIOC_ENUM_FMT), /* struct v4l2_fmtdesc */
- ioc(video, VIDIOC_ENUM_FRAMEINTERVALS), /* struct v4l2_frmivalenum */
- ioc(video, VIDIOC_ENUM_FRAMESIZES), /* struct v4l2_frmsizeenum */
- ioc(video, VIDIOC_ENUM_FREQ_BANDS), /* struct v4l2_frequency_band */
- ioc(video, VIDIOC_EXPBUF), /* struct v4l2_exportbuffer */
- ioc(video, VIDIOC_G_AUDIO), /* struct v4l2_audio */
- ioc(video, VIDIOC_G_AUDOUT), /* struct v4l2_audioout */
- ioc(video, VIDIOC_G_CROP), /* struct v4l2_crop */
- ioc(video, VIDIOC_G_CTRL), /* struct v4l2_control */
- ioc(video, VIDIOC_G_DV_TIMINGS), /* struct v4l2_dv_timings */
- ioc(video, VIDIOC_G_ENC_INDEX), /* struct v4l2_enc_idx */
- ioc(video, VIDIOC_G_EXT_CTRLS), /* struct v4l2_ext_controls */
- ioc(video, VIDIOC_G_FBUF), /* struct v4l2_framebuffer */
- ioc(video, VIDIOC_G_FMT), /* struct v4l2_format */
- ioc(video, VIDIOC_G_FREQUENCY), /* struct v4l2_frequency */
- ioc(video, VIDIOC_G_INPUT), /* int */
- ioc(video, VIDIOC_G_JPEGCOMP), /* struct v4l2_jpegcompression */
- ioc(video, VIDIOC_G_MODULATOR), /* struct v4l2_modulator */
- ioc(video, VIDIOC_G_OUTPUT), /* int */
- ioc(video, VIDIOC_G_PARM), /* struct v4l2_streamparm */
- ioc(video, VIDIOC_G_PRIORITY), /* __u32 */
- ioc(video, VIDIOC_G_SELECTION), /* struct v4l2_selection */
- ioc(video, VIDIOC_G_SLICED_VBI_CAP), /* struct v4l2_sliced_vbi_cap */
- ioc(video, VIDIOC_G_STD), /* v4l2_std_id */
- ioc(video, VIDIOC_G_TUNER), /* struct v4l2_tuner */
- ioc(video, VIDIOC_LOG_STATUS), /* void */
- ioc(video, VIDIOC_OVERLAY), /* int */
- ioc(video, VIDIOC_PREPARE_BUF), /* struct v4l2_buffer */
- ioc(video, VIDIOC_QBUF), /* struct v4l2_buffer */
- ioc(video, VIDIOC_QUERYBUF), /* struct v4l2_buffer */
- ioc(video, VIDIOC_QUERYCAP), /* struct v4l2_capability */
- ioc(video, VIDIOC_QUERYCTRL), /* struct v4l2_queryctrl */
- ioc(video, VIDIOC_QUERYMENU), /* struct v4l2_querymenu */
- ioc(video, VIDIOC_QUERYSTD), /* v4l2_std_id */
- ioc(video, VIDIOC_QUERY_DV_TIMINGS), /* struct v4l2_dv_timings */
- ioc(video, VIDIOC_REQBUFS), /* struct v4l2_requestbuffers */
- ioc(video, VIDIOC_RESERVED), /* void */
- ioc(video, VIDIOC_STREAMOFF), /* int */
- ioc(video, VIDIOC_STREAMON), /* int */
- ioc(video, VIDIOC_SUBSCRIBE_EVENT), /* struct v4l2_event_subscription */
- ioc(video, VIDIOC_S_AUDIO), /* struct v4l2_audio */
- ioc(video, VIDIOC_S_AUDOUT), /* struct v4l2_audioout */
- ioc(video, VIDIOC_S_CROP), /* struct v4l2_crop */
- ioc(video, VIDIOC_S_CTRL), /* struct v4l2_control */
- ioc(video, VIDIOC_S_DV_TIMINGS), /* struct v4l2_dv_timings */
- ioc(video, VIDIOC_S_EXT_CTRLS), /* struct v4l2_ext_controls */
- ioc(video, VIDIOC_S_FBUF), /* struct v4l2_framebuffer */
- ioc(video, VIDIOC_S_FMT), /* struct v4l2_format */
- ioc(video, VIDIOC_S_FREQUENCY), /* struct v4l2_frequency */
- ioc(video, VIDIOC_S_HW_FREQ_SEEK), /* struct v4l2_hw_freq_seek */
- ioc(video, VIDIOC_S_INPUT), /* int */
- ioc(video, VIDIOC_S_JPEGCOMP), /* struct v4l2_jpegcompression */
- ioc(video, VIDIOC_S_MODULATOR), /* struct v4l2_modulator */
- ioc(video, VIDIOC_S_OUTPUT), /* int */
- ioc(video, VIDIOC_S_PARM), /* struct v4l2_streamparm */
- ioc(video, VIDIOC_S_PRIORITY), /* __u32 */
- ioc(video, VIDIOC_S_SELECTION), /* struct v4l2_selection */
- ioc(video, VIDIOC_S_STD), /* v4l2_std_id */
- ioc(video, VIDIOC_S_TUNER), /* struct v4l2_tuner */
- ioc(video, VIDIOC_TRY_DECODER_CMD), /* struct v4l2_decoder_cmd */
- ioc(video, VIDIOC_TRY_ENCODER_CMD), /* struct v4l2_encoder_cmd */
- ioc(video, VIDIOC_TRY_EXT_CTRLS), /* struct v4l2_ext_controls */
- ioc(video, VIDIOC_TRY_FMT), /* struct v4l2_format */
- ioc(video, VIDIOC_UNSUBSCRIBE_EVENT), /* struct v4l2_event_subscription */
+ ioc(demux, DMX_ADD_PID), /* __u16 */
+ ioc(demux, DMX_GET_CAPS), /* dmx_caps_t */
+ ioc(demux, DMX_GET_PES_PIDS), /* __u16[5] */
+ ioc(demux, DMX_GET_STC), /* struct dmx_stc */
+ ioc(demux, DMX_REMOVE_PID), /* __u16 */
+ ioc(demux, DMX_SET_BUFFER_SIZE), /* void */
+ ioc(demux, DMX_SET_FILTER), /* struct dmx_sct_filter_params */
+ ioc(demux, DMX_SET_PES_FILTER), /* struct dmx_pes_filter_params */
+ ioc(demux, DMX_SET_SOURCE), /* dmx_source_t */
+ ioc(demux, DMX_START), /* void */
+ ioc(demux, DMX_STOP), /* void */
+ ioc(frontend, FE_DISEQC_RECV_SLAVE_REPLY), /* struct dvb_diseqc_slave_reply */
+ ioc(frontend, FE_DISEQC_RESET_OVERLOAD), /* void */
+ ioc(frontend, FE_DISEQC_SEND_BURST), /* void */
+ ioc(frontend, FE_DISEQC_SEND_MASTER_CMD), /* struct dvb_diseqc_master_cmd */
+ ioc(frontend, FE_DISHNETWORK_SEND_LEGACY_CMD), /* void */
+ ioc(frontend, FE_ENABLE_HIGH_LNB_VOLTAGE), /* void */
+ ioc(frontend, FE_GET_EVENT), /* struct dvb_frontend_event */
+ ioc(frontend, FE_GET_FRONTEND), /* struct dvb_frontend_parameters */
+ ioc(frontend, FE_GET_INFO), /* struct dvb_frontend_info */
+ ioc(frontend, FE_GET_PROPERTY), /* struct dtv_properties */
+ ioc(frontend, FE_READ_BER), /* __u32 */
+ ioc(frontend, FE_READ_SIGNAL_STRENGTH), /* __u16 */
+ ioc(frontend, FE_READ_SNR), /* __u16 */
+ ioc(frontend, FE_READ_STATUS), /* fe_status_t */
+ ioc(frontend, FE_READ_UNCORRECTED_BLOCKS), /* __u32 */
+ ioc(frontend, FE_SET_FRONTEND), /* struct dvb_frontend_parameters */
+ ioc(frontend, FE_SET_FRONTEND_TUNE_MODE), /* void */
+ ioc(frontend, FE_SET_PROPERTY), /* struct dtv_properties */
+ ioc(frontend, FE_SET_TONE), /* void */
+ ioc(frontend, FE_SET_VOLTAGE), /* void */
+ ioc(video, VIDIOC_CREATE_BUFS), /* struct v4l2_create_buffers */
+ ioc(video, VIDIOC_CROPCAP), /* struct v4l2_cropcap */
+ ioc(video, VIDIOC_DBG_G_CHIP_INFO), /* struct v4l2_dbg_chip_info */
+ ioc(video, VIDIOC_DBG_G_REGISTER), /* struct v4l2_dbg_register */
+ ioc(video, VIDIOC_DBG_S_REGISTER), /* struct v4l2_dbg_register */
+ ioc(video, VIDIOC_DECODER_CMD), /* struct v4l2_decoder_cmd */
+ ioc(video, VIDIOC_DQBUF), /* struct v4l2_buffer */
+ ioc(video, VIDIOC_DQEVENT), /* struct v4l2_event */
+ ioc(video, VIDIOC_DV_TIMINGS_CAP), /* struct v4l2_dv_timings_cap */
+ ioc(video, VIDIOC_ENCODER_CMD), /* struct v4l2_encoder_cmd */
+ ioc(video, VIDIOC_ENUMAUDIO), /* struct v4l2_audio */
+ ioc(video, VIDIOC_ENUMAUDOUT), /* struct v4l2_audioout */
+ ioc(video, VIDIOC_ENUMINPUT), /* struct v4l2_input */
+ ioc(video, VIDIOC_ENUMOUTPUT), /* struct v4l2_output */
+ ioc(video, VIDIOC_ENUMSTD), /* struct v4l2_standard */
+ ioc(video, VIDIOC_ENUM_DV_TIMINGS), /* struct v4l2_enum_dv_timings */
+ ioc(video, VIDIOC_ENUM_FMT), /* struct v4l2_fmtdesc */
+ ioc(video, VIDIOC_ENUM_FRAMEINTERVALS), /* struct v4l2_frmivalenum */
+ ioc(video, VIDIOC_ENUM_FRAMESIZES), /* struct v4l2_frmsizeenum */
+ ioc(video, VIDIOC_ENUM_FREQ_BANDS), /* struct v4l2_frequency_band */
+ ioc(video, VIDIOC_EXPBUF), /* struct v4l2_exportbuffer */
+ ioc(video, VIDIOC_G_AUDIO), /* struct v4l2_audio */
+ ioc(video, VIDIOC_G_AUDOUT), /* struct v4l2_audioout */
+ ioc(video, VIDIOC_G_CROP), /* struct v4l2_crop */
+ ioc(video, VIDIOC_G_CTRL), /* struct v4l2_control */
+ ioc(video, VIDIOC_G_DV_TIMINGS), /* struct v4l2_dv_timings */
+ ioc(video, VIDIOC_G_ENC_INDEX), /* struct v4l2_enc_idx */
+ ioc(video, VIDIOC_G_EXT_CTRLS), /* struct v4l2_ext_controls */
+ ioc(video, VIDIOC_G_FBUF), /* struct v4l2_framebuffer */
+ ioc(video, VIDIOC_G_FMT), /* struct v4l2_format */
+ ioc(video, VIDIOC_G_FREQUENCY), /* struct v4l2_frequency */
+ ioc(video, VIDIOC_G_INPUT), /* int */
+ ioc(video, VIDIOC_G_JPEGCOMP), /* struct v4l2_jpegcompression */
+ ioc(video, VIDIOC_G_MODULATOR), /* struct v4l2_modulator */
+ ioc(video, VIDIOC_G_OUTPUT), /* int */
+ ioc(video, VIDIOC_G_PARM), /* struct v4l2_streamparm */
+ ioc(video, VIDIOC_G_PRIORITY), /* __u32 */
+ ioc(video, VIDIOC_G_SELECTION), /* struct v4l2_selection */
+ ioc(video, VIDIOC_G_SLICED_VBI_CAP), /* struct v4l2_sliced_vbi_cap */
+ ioc(video, VIDIOC_G_STD), /* v4l2_std_id */
+ ioc(video, VIDIOC_G_TUNER), /* struct v4l2_tuner */
+ ioc(video, VIDIOC_LOG_STATUS), /* void */
+ ioc(video, VIDIOC_OVERLAY), /* int */
+ ioc(video, VIDIOC_PREPARE_BUF), /* struct v4l2_buffer */
+ ioc(video, VIDIOC_QBUF), /* struct v4l2_buffer */
+ ioc(video, VIDIOC_QUERYBUF), /* struct v4l2_buffer */
+ ioc(video, VIDIOC_QUERYCAP), /* struct v4l2_capability */
+ ioc(video, VIDIOC_QUERYCTRL), /* struct v4l2_queryctrl */
+ ioc(video, VIDIOC_QUERYMENU), /* struct v4l2_querymenu */
+ ioc(video, VIDIOC_QUERYSTD), /* v4l2_std_id */
+ ioc(video, VIDIOC_QUERY_DV_TIMINGS), /* struct v4l2_dv_timings */
+ ioc(video, VIDIOC_REQBUFS), /* struct v4l2_requestbuffers */
+ ioc(video, VIDIOC_RESERVED), /* void */
+ ioc(video, VIDIOC_STREAMOFF), /* int */
+ ioc(video, VIDIOC_STREAMON), /* int */
+ ioc(subdev, VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL), /* struct v4l2_subdev_frame_interval_enum */
+ ioc(subdev, VIDIOC_SUBDEV_ENUM_FRAME_SIZE), /* struct v4l2_subdev_frame_size_enum */
+ ioc(subdev, VIDIOC_SUBDEV_ENUM_MBUS_CODE), /* struct v4l2_subdev_mbus_code_enum */
+ ioc(subdev, VIDIOC_SUBDEV_G_CROP), /* struct v4l2_subdev_crop */
+ ioc(subdev, VIDIOC_SUBDEV_G_EDID), /* struct v4l2_subdev_edid */
+ ioc(subdev, VIDIOC_SUBDEV_G_FMT), /* struct v4l2_subdev_format */
+ ioc(subdev, VIDIOC_SUBDEV_G_FRAME_INTERVAL), /* struct v4l2_subdev_frame_interval */
+ ioc(subdev, VIDIOC_SUBDEV_G_SELECTION), /* struct v4l2_subdev_selection */
+ ioc(subdev, VIDIOC_SUBDEV_S_CROP), /* struct v4l2_subdev_crop */
+ ioc(subdev, VIDIOC_SUBDEV_S_EDID), /* struct v4l2_subdev_edid */
+ ioc(subdev, VIDIOC_SUBDEV_S_FMT), /* struct v4l2_subdev_format */
+ ioc(subdev, VIDIOC_SUBDEV_S_FRAME_INTERVAL), /* struct v4l2_subdev_frame_interval */
+ ioc(subdev, VIDIOC_SUBDEV_S_SELECTION), /* struct v4l2_subdev_selection */
+ ioc(video, VIDIOC_SUBSCRIBE_EVENT), /* struct v4l2_event_subscription */
+ ioc(video, VIDIOC_S_AUDIO), /* struct v4l2_audio */
+ ioc(video, VIDIOC_S_AUDOUT), /* struct v4l2_audioout */
+ ioc(video, VIDIOC_S_CROP), /* struct v4l2_crop */
+ ioc(video, VIDIOC_S_CTRL), /* struct v4l2_control */
+ ioc(video, VIDIOC_S_DV_TIMINGS), /* struct v4l2_dv_timings */
+ ioc(video, VIDIOC_S_EXT_CTRLS), /* struct v4l2_ext_controls */
+ ioc(video, VIDIOC_S_FBUF), /* struct v4l2_framebuffer */
+ ioc(video, VIDIOC_S_FMT), /* struct v4l2_format */
+ ioc(video, VIDIOC_S_FREQUENCY), /* struct v4l2_frequency */
+ ioc(video, VIDIOC_S_HW_FREQ_SEEK), /* struct v4l2_hw_freq_seek */
+ ioc(video, VIDIOC_S_INPUT), /* int */
+ ioc(video, VIDIOC_S_JPEGCOMP), /* struct v4l2_jpegcompression */
+ ioc(video, VIDIOC_S_MODULATOR), /* struct v4l2_modulator */
+ ioc(video, VIDIOC_S_OUTPUT), /* int */
+ ioc(video, VIDIOC_S_PARM), /* struct v4l2_streamparm */
+ ioc(video, VIDIOC_S_PRIORITY), /* __u32 */
+ ioc(video, VIDIOC_S_SELECTION), /* struct v4l2_selection */
+ ioc(video, VIDIOC_S_STD), /* v4l2_std_id */
+ ioc(video, VIDIOC_S_TUNER), /* struct v4l2_tuner */
+ ioc(video, VIDIOC_TRY_DECODER_CMD), /* struct v4l2_decoder_cmd */
+ ioc(video, VIDIOC_TRY_ENCODER_CMD), /* struct v4l2_encoder_cmd */
+ ioc(video, VIDIOC_TRY_EXT_CTRLS), /* struct v4l2_ext_controls */
+ ioc(video, VIDIOC_TRY_FMT), /* struct v4l2_format */
+ ioc(video, VIDIOC_UNSUBSCRIBE_EVENT), /* struct v4l2_event_subscription */
};
#define S_IOCTLS sizeof(ioctls)/sizeof(ioctls[0])
--- /dev/null
+/*
+ * V4L2 subdev userspace API
+ *
+ * Copyright (C) 2010 Nokia Corporation
+ *
+ * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+ * Sakari Ailus <sakari.ailus@iki.fi>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef __LINUX_V4L2_SUBDEV_H
+#define __LINUX_V4L2_SUBDEV_H
+
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#include <linux/v4l2-common.h>
+#include <linux/v4l2-mediabus.h>
+
+/**
+ * enum v4l2_subdev_format_whence - Media bus format type
+ * @V4L2_SUBDEV_FORMAT_TRY: try format, for negotiation only
+ * @V4L2_SUBDEV_FORMAT_ACTIVE: active format, applied to the device
+ */
+enum v4l2_subdev_format_whence {
+ V4L2_SUBDEV_FORMAT_TRY = 0,
+ V4L2_SUBDEV_FORMAT_ACTIVE = 1,
+};
+
+/**
+ * struct v4l2_subdev_format - Pad-level media bus format
+ * @which: format type (from enum v4l2_subdev_format_whence)
+ * @pad: pad number, as reported by the media API
+ * @format: media bus format (format code and frame size)
+ */
+struct v4l2_subdev_format {
+ __u32 which;
+ __u32 pad;
+ struct v4l2_mbus_framefmt format;
+ __u32 reserved[8];
+};
+
+/**
+ * struct v4l2_subdev_crop - Pad-level crop settings
+ * @which: format type (from enum v4l2_subdev_format_whence)
+ * @pad: pad number, as reported by the media API
+ * @rect: pad crop rectangle boundaries
+ */
+struct v4l2_subdev_crop {
+ __u32 which;
+ __u32 pad;
+ struct v4l2_rect rect;
+ __u32 reserved[8];
+};
+
+/**
+ * struct v4l2_subdev_mbus_code_enum - Media bus format enumeration
+ * @pad: pad number, as reported by the media API
+ * @index: format index during enumeration
+ * @code: format code (from enum v4l2_mbus_pixelcode)
+ */
+struct v4l2_subdev_mbus_code_enum {
+ __u32 pad;
+ __u32 index;
+ __u32 code;
+ __u32 reserved[9];
+};
+
+/**
+ * struct v4l2_subdev_frame_size_enum - Media bus format enumeration
+ * @pad: pad number, as reported by the media API
+ * @index: format index during enumeration
+ * @code: format code (from enum v4l2_mbus_pixelcode)
+ */
+struct v4l2_subdev_frame_size_enum {
+ __u32 index;
+ __u32 pad;
+ __u32 code;
+ __u32 min_width;
+ __u32 max_width;
+ __u32 min_height;
+ __u32 max_height;
+ __u32 reserved[9];
+};
+
+/**
+ * struct v4l2_subdev_frame_interval - Pad-level frame rate
+ * @pad: pad number, as reported by the media API
+ * @interval: frame interval in seconds
+ */
+struct v4l2_subdev_frame_interval {
+ __u32 pad;
+ struct v4l2_fract interval;
+ __u32 reserved[9];
+};
+
+/**
+ * struct v4l2_subdev_frame_interval_enum - Frame interval enumeration
+ * @pad: pad number, as reported by the media API
+ * @index: frame interval index during enumeration
+ * @code: format code (from enum v4l2_mbus_pixelcode)
+ * @width: frame width in pixels
+ * @height: frame height in pixels
+ * @interval: frame interval in seconds
+ */
+struct v4l2_subdev_frame_interval_enum {
+ __u32 index;
+ __u32 pad;
+ __u32 code;
+ __u32 width;
+ __u32 height;
+ struct v4l2_fract interval;
+ __u32 reserved[9];
+};
+
+/**
+ * struct v4l2_subdev_selection - selection info
+ *
+ * @which: either V4L2_SUBDEV_FORMAT_ACTIVE or V4L2_SUBDEV_FORMAT_TRY
+ * @pad: pad number, as reported by the media API
+ * @target: Selection target, used to choose one of possible rectangles,
+ * defined in v4l2-common.h; V4L2_SEL_TGT_* .
+ * @flags: constraint flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*.
+ * @r: coordinates of the selection window
+ * @reserved: for future use, set to zero for now
+ *
+ * Hardware may use multiple helper windows to process a video stream.
+ * The structure is used to exchange this selection areas between
+ * an application and a driver.
+ */
+struct v4l2_subdev_selection {
+ __u32 which;
+ __u32 pad;
+ __u32 target;
+ __u32 flags;
+ struct v4l2_rect r;
+ __u32 reserved[8];
+};
+
+struct v4l2_subdev_edid {
+ __u32 pad;
+ __u32 start_block;
+ __u32 blocks;
+ __u32 reserved[5];
+ __u8 __user *edid;
+};
+
+#define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format)
+#define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format)
+#define VIDIOC_SUBDEV_G_FRAME_INTERVAL \
+ _IOWR('V', 21, struct v4l2_subdev_frame_interval)
+#define VIDIOC_SUBDEV_S_FRAME_INTERVAL \
+ _IOWR('V', 22, struct v4l2_subdev_frame_interval)
+#define VIDIOC_SUBDEV_ENUM_MBUS_CODE \
+ _IOWR('V', 2, struct v4l2_subdev_mbus_code_enum)
+#define VIDIOC_SUBDEV_ENUM_FRAME_SIZE \
+ _IOWR('V', 74, struct v4l2_subdev_frame_size_enum)
+#define VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL \
+ _IOWR('V', 75, struct v4l2_subdev_frame_interval_enum)
+#define VIDIOC_SUBDEV_G_CROP _IOWR('V', 59, struct v4l2_subdev_crop)
+#define VIDIOC_SUBDEV_S_CROP _IOWR('V', 60, struct v4l2_subdev_crop)
+#define VIDIOC_SUBDEV_G_SELECTION \
+ _IOWR('V', 61, struct v4l2_subdev_selection)
+#define VIDIOC_SUBDEV_S_SELECTION \
+ _IOWR('V', 62, struct v4l2_subdev_selection)
+#define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_subdev_edid)
+#define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_subdev_edid)
+
+#endif