]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - include/media/v4l2-ioctl.h
V4L/DVB (8479): tveeprom/ivtv: fix usage of has_ir field
[mirror_ubuntu-bionic-kernel.git] / include / media / v4l2-ioctl.h
CommitLineData
35ea11ff
HV
1/*
2 *
3 * V 4 L 2 D R I V E R H E L P E R A P I
4 *
5 * Moved from videodev2.h
6 *
7 * Some commonly needed functions for drivers (v4l2-common.o module)
8 */
9#ifndef _V4L2_IOCTL_H
10#define _V4L2_IOCTL_H
11
12#include <linux/poll.h>
13#include <linux/fs.h>
14#include <linux/device.h>
15#include <linux/mutex.h>
16#include <linux/compiler.h> /* need __user */
17#ifdef CONFIG_VIDEO_V4L1_COMPAT
18#include <linux/videodev.h>
19#else
20#include <linux/videodev2.h>
21#endif
22
2864462e
MCC
23/* v4l debugging and diagnostics */
24
25/* Debug bitmask flags to be used on V4L2 */
26#define V4L2_DEBUG_IOCTL 0x01
27#define V4L2_DEBUG_IOCTL_ARG 0x02
28
29/* Use this macro for non-I2C drivers. Pass the driver name as the first arg. */
30#define v4l_print_ioctl(name, cmd) \
31 do { \
32 printk(KERN_DEBUG "%s: ", name); \
33 v4l_printk_ioctl(cmd); \
34 } while (0)
35
36/* Use this macro in I2C drivers where 'client' is the struct i2c_client
37 pointer */
38#define v4l_i2c_print_ioctl(client, cmd) \
39 do { \
40 v4l_client_printk(KERN_DEBUG, client, ""); \
41 v4l_printk_ioctl(cmd); \
42 } while (0)
43
35ea11ff
HV
44/* Video standard functions */
45extern const char *v4l2_norm_to_name(v4l2_std_id id);
46extern int v4l2_video_std_construct(struct v4l2_standard *vs,
47 int id, const char *name);
48/* Prints the ioctl in a human-readable format */
49extern void v4l_printk_ioctl(unsigned int cmd);
50
51/* names for fancy debug output */
52extern const char *v4l2_field_names[];
53extern const char *v4l2_type_names[];
54
55/* Compatibility layer interface -- v4l1-compat module */
56typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file,
57 unsigned int cmd, void *arg);
58#ifdef CONFIG_VIDEO_V4L1_COMPAT
59int v4l_compat_translate_ioctl(struct inode *inode, struct file *file,
60 int cmd, void *arg, v4l2_kioctl driver_ioctl);
61#else
62#define v4l_compat_translate_ioctl(inode, file, cmd, arg, ioctl) (-EINVAL)
63#endif
64
65/* 32 Bits compatibility layer for 64 bits processors */
66extern long v4l_compat_ioctl32(struct file *file, unsigned int cmd,
67 unsigned long arg);
68
69extern int video_ioctl2(struct inode *inode, struct file *file,
70 unsigned int cmd, unsigned long arg);
71
72/* Include support for obsoleted stuff */
73extern int video_usercopy(struct inode *inode, struct file *file,
74 unsigned int cmd, unsigned long arg,
75 int (*func)(struct inode *inode, struct file *file,
76 unsigned int cmd, void *arg));
77
78#endif /* _V4L2_IOCTL_H */