[SCSI] scsi_dh: Update EMC handler
[safe/jmp/linux-2.6] / include / media / v4l2-dev.h
index 8b79e2c..33f379b 100644 (file)
 #define VFL_TYPE_VTX           3
 
 /*  Video standard functions  */
-extern unsigned int v4l2_video_std_fps(struct v4l2_standard *vs);
-extern char *v4l2_norm_to_name(v4l2_std_id id);
+extern const char *v4l2_norm_to_name(v4l2_std_id id);
 extern int v4l2_video_std_construct(struct v4l2_standard *vs,
-                                   int id, char *name);
+                                   int id, const char *name);
+/* Prints the ioctl in a human-readable format */
+extern void v4l_printk_ioctl(unsigned int cmd);
 
 /* prority handling */
 struct v4l2_prio_state {
@@ -58,8 +59,8 @@ enum v4l2_priority v4l2_prio_max(struct v4l2_prio_state *global);
 int v4l2_prio_check(struct v4l2_prio_state *global, enum v4l2_priority *local);
 
 /* names for fancy debug output */
-extern char *v4l2_field_names[];
-extern char *v4l2_type_names[];
+extern const char *v4l2_field_names[];
+extern const char *v4l2_type_names[];
 
 /*  Compatibility layer interface  --  v4l1-compat module */
 typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file,
@@ -86,13 +87,17 @@ struct video_device
        /* device ops */
        const struct file_operations *fops;
 
+       /* sysfs */
+       struct device class_dev;        /* v4l device */
+       struct device *dev;             /* device parent */
+
        /* device info */
-       struct device *dev;
        char name[32];
        int type;       /* v4l1 */
        int type2;      /* v4l2 */
-       int hardware;
        int minor;
+       /* attribute to diferentiate multiple indexs on one physical device */
+       int index;
 
        int debug;      /* Activates debug level*/
 
@@ -115,74 +120,76 @@ struct video_device
                                    enum v4l2_priority p);
 
        /* VIDIOC_ENUM_FMT handlers */
-       int (*vidioc_enum_fmt_cap)         (struct file *file, void *fh,
-                                           struct v4l2_fmtdesc *f);
-       int (*vidioc_enum_fmt_overlay)     (struct file *file, void *fh,
-                                           struct v4l2_fmtdesc *f);
-       int (*vidioc_enum_fmt_vbi)         (struct file *file, void *fh,
+       int (*vidioc_enum_fmt_vid_cap)     (struct file *file, void *fh,
                                            struct v4l2_fmtdesc *f);
-       int (*vidioc_enum_fmt_vbi_capture) (struct file *file, void *fh,
+       int (*vidioc_enum_fmt_vid_overlay) (struct file *file, void *fh,
                                            struct v4l2_fmtdesc *f);
-       int (*vidioc_enum_fmt_video_output)(struct file *file, void *fh,
+       int (*vidioc_enum_fmt_vid_out)     (struct file *file, void *fh,
                                            struct v4l2_fmtdesc *f);
-       int (*vidioc_enum_fmt_output_overlay) (struct file *file, void *fh,
-                                           struct v4l2_fmtdesc *f);
-       int (*vidioc_enum_fmt_vbi_output)  (struct file *file, void *fh,
+#if 1
+       /* deprecated, will be removed in 2.6.28 */
+       int (*vidioc_enum_fmt_vbi_cap)     (struct file *file, void *fh,
                                            struct v4l2_fmtdesc *f);
+#endif
        int (*vidioc_enum_fmt_type_private)(struct file *file, void *fh,
                                            struct v4l2_fmtdesc *f);
 
        /* VIDIOC_G_FMT handlers */
-       int (*vidioc_g_fmt_cap)        (struct file *file, void *fh,
+       int (*vidioc_g_fmt_vid_cap)    (struct file *file, void *fh,
                                        struct v4l2_format *f);
-       int (*vidioc_g_fmt_overlay)    (struct file *file, void *fh,
+       int (*vidioc_g_fmt_vid_overlay)(struct file *file, void *fh,
                                        struct v4l2_format *f);
-       int (*vidioc_g_fmt_vbi)        (struct file *file, void *fh,
+       int (*vidioc_g_fmt_vid_out)    (struct file *file, void *fh,
                                        struct v4l2_format *f);
-       int (*vidioc_g_fmt_vbi_output) (struct file *file, void *fh,
+       int (*vidioc_g_fmt_vid_out_overlay)(struct file *file, void *fh,
                                        struct v4l2_format *f);
-       int (*vidioc_g_fmt_vbi_capture)(struct file *file, void *fh,
+       int (*vidioc_g_fmt_vbi_cap)    (struct file *file, void *fh,
                                        struct v4l2_format *f);
-       int (*vidioc_g_fmt_video_output)(struct file *file, void *fh,
+       int (*vidioc_g_fmt_vbi_out)    (struct file *file, void *fh,
                                        struct v4l2_format *f);
-       int (*vidioc_g_fmt_output_overlay) (struct file *file, void *fh,
+       int (*vidioc_g_fmt_sliced_vbi_cap)(struct file *file, void *fh,
+                                       struct v4l2_format *f);
+       int (*vidioc_g_fmt_sliced_vbi_out)(struct file *file, void *fh,
                                        struct v4l2_format *f);
        int (*vidioc_g_fmt_type_private)(struct file *file, void *fh,
                                        struct v4l2_format *f);
 
        /* VIDIOC_S_FMT handlers */
-       int (*vidioc_s_fmt_cap)        (struct file *file, void *fh,
+       int (*vidioc_s_fmt_vid_cap)    (struct file *file, void *fh,
                                        struct v4l2_format *f);
-
-       int (*vidioc_s_fmt_overlay)    (struct file *file, void *fh,
+       int (*vidioc_s_fmt_vid_overlay)(struct file *file, void *fh,
+                                       struct v4l2_format *f);
+       int (*vidioc_s_fmt_vid_out)    (struct file *file, void *fh,
                                        struct v4l2_format *f);
-       int (*vidioc_s_fmt_vbi)        (struct file *file, void *fh,
+       int (*vidioc_s_fmt_vid_out_overlay)(struct file *file, void *fh,
                                        struct v4l2_format *f);
-       int (*vidioc_s_fmt_vbi_output) (struct file *file, void *fh,
+       int (*vidioc_s_fmt_vbi_cap)    (struct file *file, void *fh,
                                        struct v4l2_format *f);
-       int (*vidioc_s_fmt_vbi_capture)(struct file *file, void *fh,
+       int (*vidioc_s_fmt_vbi_out)    (struct file *file, void *fh,
                                        struct v4l2_format *f);
-       int (*vidioc_s_fmt_video_output)(struct file *file, void *fh,
+       int (*vidioc_s_fmt_sliced_vbi_cap)(struct file *file, void *fh,
                                        struct v4l2_format *f);
-       int (*vidioc_s_fmt_output_overlay) (struct file *file, void *fh,
+       int (*vidioc_s_fmt_sliced_vbi_out)(struct file *file, void *fh,
                                        struct v4l2_format *f);
        int (*vidioc_s_fmt_type_private)(struct file *file, void *fh,
                                        struct v4l2_format *f);
 
        /* VIDIOC_TRY_FMT handlers */
-       int (*vidioc_try_fmt_cap)        (struct file *file, void *fh,
+       int (*vidioc_try_fmt_vid_cap)    (struct file *file, void *fh,
                                          struct v4l2_format *f);
-       int (*vidioc_try_fmt_overlay)    (struct file *file, void *fh,
+       int (*vidioc_try_fmt_vid_overlay)(struct file *file, void *fh,
                                          struct v4l2_format *f);
-       int (*vidioc_try_fmt_vbi)        (struct file *file, void *fh,
+       int (*vidioc_try_fmt_vid_out)    (struct file *file, void *fh,
                                          struct v4l2_format *f);
-       int (*vidioc_try_fmt_vbi_output) (struct file *file, void *fh,
+       int (*vidioc_try_fmt_vid_out_overlay)(struct file *file, void *fh,
                                          struct v4l2_format *f);
-       int (*vidioc_try_fmt_vbi_capture)(struct file *file, void *fh,
+       int (*vidioc_try_fmt_vbi_cap)    (struct file *file, void *fh,
                                          struct v4l2_format *f);
-       int (*vidioc_try_fmt_video_output)(struct file *file, void *fh,
+       int (*vidioc_try_fmt_vbi_out)    (struct file *file, void *fh,
                                          struct v4l2_format *f);
-       int (*vidioc_try_fmt_output_overlay)(struct file *file, void *fh,
+       int (*vidioc_try_fmt_sliced_vbi_cap)(struct file *file, void *fh,
+                                         struct v4l2_format *f);
+       int (*vidioc_try_fmt_sliced_vbi_out)(struct file *file, void *fh,
                                          struct v4l2_format *f);
        int (*vidioc_try_fmt_type_private)(struct file *file, void *fh,
                                          struct v4l2_format *f);
@@ -209,8 +216,9 @@ struct video_device
        int (*vidioc_streamoff)(struct file *file, void *fh, enum v4l2_buf_type i);
 
                /* Standard handling
-                       G_STD and ENUMSTD are handled by videodev.c
+                       ENUMSTD is handled by videodev.c
                 */
+       int (*vidioc_g_std) (struct file *file, void *fh, v4l2_std_id *norm);
        int (*vidioc_s_std) (struct file *file, void *fh, v4l2_std_id *norm);
        int (*vidioc_querystd) (struct file *file, void *fh, v4l2_std_id *a);
 
@@ -221,7 +229,7 @@ struct video_device
        int (*vidioc_s_input)   (struct file *file, void *fh, unsigned int i);
 
                /* Output handling */
-       int (*vidioc_enumoutput) (struct file *file, void *fh,
+       int (*vidioc_enum_output) (struct file *file, void *fh,
                                  struct v4l2_output *a);
        int (*vidioc_g_output)   (struct file *file, void *fh, unsigned int *i);
        int (*vidioc_s_output)   (struct file *file, void *fh, unsigned int i);
@@ -269,10 +277,6 @@ struct video_device
        int (*vidioc_s_crop)           (struct file *file, void *fh,
                                        struct v4l2_crop *a);
        /* Compression ioctls */
-       int (*vidioc_g_mpegcomp)       (struct file *file, void *fh,
-                                       struct v4l2_mpeg_compression *a);
-       int (*vidioc_s_mpegcomp)       (struct file *file, void *fh,
-                                       struct v4l2_mpeg_compression *a);
        int (*vidioc_g_jpegcomp)       (struct file *file, void *fh,
                                        struct v4l2_jpegcompression *a);
        int (*vidioc_s_jpegcomp)       (struct file *file, void *fh,
@@ -307,6 +311,8 @@ struct video_device
        /* Log status ioctl */
        int (*vidioc_log_status)       (struct file *file, void *fh);
 
+       int (*vidioc_s_hw_freq_seek)   (struct file *file, void *fh,
+                                       struct v4l2_hw_freq_seek *a);
 
        /* Debugging ioctls */
 #ifdef CONFIG_VIDEO_ADV_DEBUG
@@ -318,6 +324,10 @@ struct video_device
        int (*vidioc_g_chip_ident)     (struct file *file, void *fh,
                                        struct v4l2_chip_ident *chip);
 
+       /* For other private ioctls */
+       int (*vidioc_default)          (struct file *file, void *fh,
+                                       int cmd, void *arg);
+
 
 #ifdef OBSOLETE_OWNER /* to be removed soon */
 /* obsolete -- fops->owner is used instead */
@@ -332,7 +342,6 @@ void *priv;
        /* for videodev.c intenal usage -- please don't touch */
        int users;                     /* video_exclusive_{open|close} ... */
        struct mutex lock;             /* ... helper function uses these   */
-       struct class_device class_dev; /* sysfs */
 };
 
 /* Class-dev to video-device */
@@ -340,6 +349,8 @@ void *priv;
 
 /* Version 2 functions */
 extern int video_register_device(struct video_device *vfd, int type, int nr);
+int video_register_device_index(struct video_device *vfd, int type, int nr,
+                                       int index);
 void video_unregister_device(struct video_device *);
 extern int video_ioctl2(struct inode *inode, struct file *file,
                          unsigned int cmd, unsigned long arg);
@@ -360,18 +371,18 @@ extern int video_usercopy(struct inode *inode, struct file *file,
 
 static inline int __must_check
 video_device_create_file(struct video_device *vfd,
-                        struct class_device_attribute *attr)
+                        struct device_attribute *attr)
 {
-       int ret = class_device_create_file(&vfd->class_dev, attr);
+       int ret = device_create_file(&vfd->class_dev, attr);
        if (ret < 0)
-               printk(KERN_WARNING "%s error: %d\n", __FUNCTION__, ret);
+               printk(KERN_WARNING "%s error: %d\n", __func__, ret);
        return ret;
 }
 static inline void
 video_device_remove_file(struct video_device *vfd,
-                        struct class_device_attribute *attr)
+                        struct device_attribute *attr)
 {
-       class_device_remove_file(&vfd->class_dev, attr);
+       device_remove_file(&vfd->class_dev, attr);
 }
 
 #endif /* CONFIG_VIDEO_V4L1_COMPAT */