V4L/DVB (10135): v4l2: introduce v4l2_file_operations.
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. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:

committed by
Mauro Carvalho Chehab

parent
dfa9a5ae67
commit
bec43661b1
@@ -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 */
|
||||
struct device dev; /* v4l device */
|
||||
|
Reference in New Issue
Block a user