blob: 685b1b62a0543a38110a393bd0d4f710a2cb8e5e [file] [log] [blame]
Hans Verkuil35ea11f2008-07-20 08:12:02 -03001/*
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
23/* Video standard functions */
24extern const char *v4l2_norm_to_name(v4l2_std_id id);
25extern int v4l2_video_std_construct(struct v4l2_standard *vs,
26 int id, const char *name);
27/* Prints the ioctl in a human-readable format */
28extern void v4l_printk_ioctl(unsigned int cmd);
29
30/* names for fancy debug output */
31extern const char *v4l2_field_names[];
32extern const char *v4l2_type_names[];
33
34/* Compatibility layer interface -- v4l1-compat module */
35typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file,
36 unsigned int cmd, void *arg);
37#ifdef CONFIG_VIDEO_V4L1_COMPAT
38int v4l_compat_translate_ioctl(struct inode *inode, struct file *file,
39 int cmd, void *arg, v4l2_kioctl driver_ioctl);
40#else
41#define v4l_compat_translate_ioctl(inode, file, cmd, arg, ioctl) (-EINVAL)
42#endif
43
44/* 32 Bits compatibility layer for 64 bits processors */
45extern long v4l_compat_ioctl32(struct file *file, unsigned int cmd,
46 unsigned long arg);
47
48extern int video_ioctl2(struct inode *inode, struct file *file,
49 unsigned int cmd, unsigned long arg);
50
51/* Include support for obsoleted stuff */
52extern int video_usercopy(struct inode *inode, struct file *file,
53 unsigned int cmd, unsigned long arg,
54 int (*func)(struct inode *inode, struct file *file,
55 unsigned int cmd, void *arg));
56
57#endif /* _V4L2_IOCTL_H */