g_uvc.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
  2. /*
  3. * g_uvc.h -- USB Video Class Gadget driver API
  4. *
  5. * Copyright (C) 2009-2010 Laurent Pinchart <[email protected]>
  6. */
  7. #ifndef __LINUX_USB_G_UVC_H
  8. #define __LINUX_USB_G_UVC_H
  9. #include <linux/ioctl.h>
  10. #include <linux/types.h>
  11. #include <linux/usb/ch9.h>
  12. #define UVC_EVENT_FIRST (V4L2_EVENT_PRIVATE_START + 0)
  13. #define UVC_EVENT_CONNECT (V4L2_EVENT_PRIVATE_START + 0)
  14. #define UVC_EVENT_DISCONNECT (V4L2_EVENT_PRIVATE_START + 1)
  15. #define UVC_EVENT_STREAMON (V4L2_EVENT_PRIVATE_START + 2)
  16. #define UVC_EVENT_STREAMOFF (V4L2_EVENT_PRIVATE_START + 3)
  17. #define UVC_EVENT_SETUP (V4L2_EVENT_PRIVATE_START + 4)
  18. #define UVC_EVENT_DATA (V4L2_EVENT_PRIVATE_START + 5)
  19. #define UVC_EVENT_LAST (V4L2_EVENT_PRIVATE_START + 5)
  20. #define UVC_STRING_CONTROL_IDX 0
  21. #define UVC_STRING_STREAMING_IDX 1
  22. struct uvc_request_data {
  23. __s32 length;
  24. __u8 data[60];
  25. };
  26. struct uvc_event {
  27. union {
  28. enum usb_device_speed speed;
  29. struct usb_ctrlrequest req;
  30. struct uvc_request_data data;
  31. };
  32. };
  33. #define UVCIOC_SEND_RESPONSE _IOW('U', 1, struct uvc_request_data)
  34. #endif /* __LINUX_USB_G_UVC_H */