linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / include / linux / videodev.h
index 8dba97a..9114009 100644 (file)
@@ -1,20 +1,48 @@
-/*
- *     Video for Linux version 1 - OBSOLETE
- *
- *     Header file for v4l1 drivers and applications, for
- *     Linux kernels 2.2.x or 2.4.x.
- *
- *     Provides header for legacy drivers and applications
- *
- *     See http://linuxtv.org for more info
- *
- */
 #ifndef __LINUX_VIDEODEV_H
 #define __LINUX_VIDEODEV_H
 
+#include <linux/types.h>
+
+#define HAVE_V4L1 1
+
 #include <linux/videodev2.h>
 
-#if defined(CONFIG_VIDEO_V4L1_COMPAT) || !defined (__KERNEL__)
+#ifdef __KERNEL__
+
+#include <linux/mm.h>
+
+extern struct video_device* video_devdata(struct file*);
+
+#define to_video_device(cd) container_of(cd, struct video_device, class_dev)
+static inline void
+video_device_create_file(struct video_device *vfd,
+                        struct class_device_attribute *attr)
+{
+       class_device_create_file(&vfd->class_dev, attr);
+}
+static inline void
+video_device_remove_file(struct video_device *vfd,
+                        struct class_device_attribute *attr)
+{
+       class_device_remove_file(&vfd->class_dev, attr);
+}
+
+#if OBSOLETE_OWNER /* to be removed in 2.6.15 */
+/* helper functions to access driver private data. */
+static inline void *video_get_drvdata(struct video_device *dev)
+{
+       return dev->priv;
+}
+
+static inline void video_set_drvdata(struct video_device *dev, void *data)
+{
+       dev->priv = data;
+}
+#endif
+
+extern int video_exclusive_open(struct inode *inode, struct file *file);
+extern int video_exclusive_release(struct inode *inode, struct file *file);
+#endif /* __KERNEL__ */
 
 struct video_capability
 {
@@ -335,9 +363,6 @@ struct video_code
 #define VID_HARDWARE_SAA7114H   37
 #define VID_HARDWARE_SN9C102   38
 #define VID_HARDWARE_ARV       39
-
-#endif /* CONFIG_VIDEO_V4L1_COMPAT */
-
 #endif /* __LINUX_VIDEODEV_H */
 
 /*