summaryrefslogtreecommitdiff
path: root/linux/include/media/v4l2-dev.h
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2008-12-30 10:58:20 +0100
committerHans Verkuil <hverkuil@xs4all.nl>2008-12-30 10:58:20 +0100
commitc91fcc9b460397a85a6bd1d8f441d8da5abac415 (patch)
treeaf3440ea722abf6142021621c29745328af7ac2a /linux/include/media/v4l2-dev.h
parentd1e126d1421066319ebc9da9c8084c425cfdc762 (diff)
downloadmediapointer-dvb-s2-c91fcc9b460397a85a6bd1d8f441d8da5abac415.tar.gz
mediapointer-dvb-s2-c91fcc9b460397a85a6bd1d8f441d8da5abac415.tar.bz2
v4l2: introduce v4l2_file_operations.
From: Hans Verkuil <hverkuil@xs4all.nl> Introduce a struct v4l2_file_operations for v4l2 drivers. Remove the unnecessary inode argument. Move compat32 handling (and llseek) into the v4l2-dev core: this is now handled in the v4l2 core and no longer in the drivers themselves. Note that this changeset reverts an earlier patch that changed the return type of__video_ioctl2 from int to long. This change will be reinstated later in a much improved version. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'linux/include/media/v4l2-dev.h')
-rw-r--r--linux/include/media/v4l2-dev.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/linux/include/media/v4l2-dev.h b/linux/include/media/v4l2-dev.h
index c6cf5b1b2..baa0c21d4 100644
--- a/linux/include/media/v4l2-dev.h
+++ b/linux/include/media/v4l2-dev.h
@@ -25,6 +25,7 @@
#define VFL_TYPE_MAX 4
struct v4l2_ioctl_callbacks;
+struct video_device;
struct v4l2_device;
/* Flag to mark the video_device struct as unregistered.
@@ -32,6 +33,18 @@ struct v4l2_device;
device access. It is set by video_unregister_device. */
#define V4L2_FL_UNREGISTERED (0)
+struct v4l2_file_operations {
+ struct module *owner;
+ ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
+ ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
+ unsigned int (*poll) (struct file *, struct poll_table_struct *);
+ int (*ioctl) (struct file *, unsigned int, unsigned long);
+ long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
+ int (*mmap) (struct file *, struct vm_area_struct *);
+ int (*open) (struct file *);
+ int (*release) (struct file *);
+};
+
/*
* Newer version of video_device, handled by videodev2.c
* This version moves redundant code from video device code to
@@ -41,7 +54,7 @@ struct v4l2_device;
struct video_device
{
/* device ops */
- const struct file_operations *fops;
+ const struct v4l2_file_operations *fops;
/* sysfs */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)