1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 #ifndef __LINUX_USB_G_UVC_H
   9 #define __LINUX_USB_G_UVC_H
  10 
  11 #include <linux/ioctl.h>
  12 #include <linux/types.h>
  13 #include <linux/usb/ch9.h>
  14 
  15 #define UVC_EVENT_FIRST                 (V4L2_EVENT_PRIVATE_START + 0)
  16 #define UVC_EVENT_CONNECT               (V4L2_EVENT_PRIVATE_START + 0)
  17 #define UVC_EVENT_DISCONNECT            (V4L2_EVENT_PRIVATE_START + 1)
  18 #define UVC_EVENT_STREAMON              (V4L2_EVENT_PRIVATE_START + 2)
  19 #define UVC_EVENT_STREAMOFF             (V4L2_EVENT_PRIVATE_START + 3)
  20 #define UVC_EVENT_SETUP                 (V4L2_EVENT_PRIVATE_START + 4)
  21 #define UVC_EVENT_DATA                  (V4L2_EVENT_PRIVATE_START + 5)
  22 #define UVC_EVENT_LAST                  (V4L2_EVENT_PRIVATE_START + 5)
  23 
  24 struct uvc_request_data {
  25         __s32 length;
  26         __u8 data[60];
  27 };
  28 
  29 struct uvc_event {
  30         union {
  31                 enum usb_device_speed speed;
  32                 struct usb_ctrlrequest req;
  33                 struct uvc_request_data data;
  34         };
  35 };
  36 
  37 #define UVCIOC_SEND_RESPONSE            _IOW('U', 1, struct uvc_request_data)
  38 
  39 #endif