1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __LINUX_UVCVIDEO_H_
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __LINUX_UVCVIDEO_H_
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/ioctl.h>
22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h>
23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_DATA_TYPE_RAW 0
25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_DATA_TYPE_SIGNED 1
26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_DATA_TYPE_UNSIGNED 2
27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_DATA_TYPE_BOOLEAN 3
28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_DATA_TYPE_ENUM 4
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_DATA_TYPE_BITMASK 5
31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_FLAG_SET_CUR (1 << 0)
32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_FLAG_GET_CUR (1 << 1)
33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_FLAG_GET_MIN (1 << 2)
35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_FLAG_GET_MAX (1 << 3)
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_FLAG_GET_RES (1 << 4)
37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_FLAG_GET_DEF (1 << 5)
38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_FLAG_RESTORE (1 << 6)
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVC_CTRL_FLAG_AUTO_UPDATE (1 << 7)
41d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define UVC_CTRL_FLAG_GET_RANGE (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | UVC_CTRL_FLAG_GET_MAX | UVC_CTRL_FLAG_GET_RES | UVC_CTRL_FLAG_GET_DEF)
42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct uvc_menu_info {
43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 value;
45d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 name[32];
46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct uvc_xu_control_mapping {
48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 id;
50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 name[32];
51d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 entity[16];
52d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 selector;
53655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 size;
55d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 offset;
56d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 v4l2_type;
57d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 data_type;
58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct uvc_menu_info __user * menu_info;
60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 menu_count;
61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 reserved[4];
62655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
63655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct uvc_xu_control_query {
65d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 unit;
66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 selector;
67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 query;
68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 size;
70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 __user * data;
71655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
72655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVCIOC_CTRL_MAP _IOWR('u', 0x20, struct uvc_xu_control_mapping)
73655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define UVCIOC_CTRL_QUERY _IOWR('u', 0x21, struct uvc_xu_control_query)
75655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
76