blob: 719147aec8885e5382fb0062c750a70243dcee90 [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef __LINUX_UVCVIDEO_H_
20#define __LINUX_UVCVIDEO_H_
21#include <linux/ioctl.h>
22#include <linux/types.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070023#define UVC_CTRL_DATA_TYPE_RAW 0
24#define UVC_CTRL_DATA_TYPE_SIGNED 1
25#define UVC_CTRL_DATA_TYPE_UNSIGNED 2
26#define UVC_CTRL_DATA_TYPE_BOOLEAN 3
Ben Cheng655a7c02013-10-16 16:09:24 -070027#define UVC_CTRL_DATA_TYPE_ENUM 4
28#define UVC_CTRL_DATA_TYPE_BITMASK 5
29#define UVC_CTRL_FLAG_SET_CUR (1 << 0)
30#define UVC_CTRL_FLAG_GET_CUR (1 << 1)
Ben Cheng655a7c02013-10-16 16:09:24 -070031#define UVC_CTRL_FLAG_GET_MIN (1 << 2)
32#define UVC_CTRL_FLAG_GET_MAX (1 << 3)
33#define UVC_CTRL_FLAG_GET_RES (1 << 4)
34#define UVC_CTRL_FLAG_GET_DEF (1 << 5)
Ben Cheng655a7c02013-10-16 16:09:24 -070035#define UVC_CTRL_FLAG_RESTORE (1 << 6)
36#define UVC_CTRL_FLAG_AUTO_UPDATE (1 << 7)
Christopher Ferris9ce28842018-10-25 12:11:39 -070037#define UVC_CTRL_FLAG_ASYNCHRONOUS (1 << 8)
Tao Baod7db5942015-01-28 10:07:51 -080038#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)
Ben Cheng655a7c02013-10-16 16:09:24 -070039struct uvc_menu_info {
Tao Baod7db5942015-01-28 10:07:51 -080040 __u32 value;
41 __u8 name[32];
Ben Cheng655a7c02013-10-16 16:09:24 -070042};
43struct uvc_xu_control_mapping {
Tao Baod7db5942015-01-28 10:07:51 -080044 __u32 id;
45 __u8 name[32];
46 __u8 entity[16];
47 __u8 selector;
Tao Baod7db5942015-01-28 10:07:51 -080048 __u8 size;
49 __u8 offset;
50 __u32 v4l2_type;
51 __u32 data_type;
Tao Baod7db5942015-01-28 10:07:51 -080052 struct uvc_menu_info __user * menu_info;
53 __u32 menu_count;
54 __u32 reserved[4];
Ben Cheng655a7c02013-10-16 16:09:24 -070055};
Ben Cheng655a7c02013-10-16 16:09:24 -070056struct uvc_xu_control_query {
Tao Baod7db5942015-01-28 10:07:51 -080057 __u8 unit;
58 __u8 selector;
59 __u8 query;
Tao Baod7db5942015-01-28 10:07:51 -080060 __u16 size;
61 __u8 __user * data;
Ben Cheng655a7c02013-10-16 16:09:24 -070062};
63#define UVCIOC_CTRL_MAP _IOWR('u', 0x20, struct uvc_xu_control_mapping)
Ben Cheng655a7c02013-10-16 16:09:24 -070064#define UVCIOC_CTRL_QUERY _IOWR('u', 0x21, struct uvc_xu_control_query)
Christopher Ferris76a1d452018-06-27 14:12:29 -070065struct uvc_meta_buf {
66 __u64 ns;
67 __u16 sof;
68 __u8 length;
69 __u8 flags;
70 __u8 buf[];
71} __packed;
Ben Cheng655a7c02013-10-16 16:09:24 -070072#endif