xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/uvcvideo.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef __LINUX_UVCVIDEO_H_
8*8d67ca89SAndroid Build Coastguard Worker #define __LINUX_UVCVIDEO_H_
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/ioctl.h>
10*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
11*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_DATA_TYPE_RAW 0
12*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_DATA_TYPE_SIGNED 1
13*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_DATA_TYPE_UNSIGNED 2
14*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_DATA_TYPE_BOOLEAN 3
15*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_DATA_TYPE_ENUM 4
16*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_DATA_TYPE_BITMASK 5
17*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_FLAG_SET_CUR (1 << 0)
18*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_FLAG_GET_CUR (1 << 1)
19*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_FLAG_GET_MIN (1 << 2)
20*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_FLAG_GET_MAX (1 << 3)
21*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_FLAG_GET_RES (1 << 4)
22*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_FLAG_GET_DEF (1 << 5)
23*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_FLAG_RESTORE (1 << 6)
24*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_FLAG_AUTO_UPDATE (1 << 7)
25*8d67ca89SAndroid Build Coastguard Worker #define UVC_CTRL_FLAG_ASYNCHRONOUS (1 << 8)
26*8d67ca89SAndroid Build Coastguard Worker #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)
27*8d67ca89SAndroid Build Coastguard Worker #define UVC_MENU_NAME_LEN 32
28*8d67ca89SAndroid Build Coastguard Worker struct uvc_menu_info {
29*8d67ca89SAndroid Build Coastguard Worker   __u32 value;
30*8d67ca89SAndroid Build Coastguard Worker   __u8 name[UVC_MENU_NAME_LEN];
31*8d67ca89SAndroid Build Coastguard Worker };
32*8d67ca89SAndroid Build Coastguard Worker struct uvc_xu_control_mapping {
33*8d67ca89SAndroid Build Coastguard Worker   __u32 id;
34*8d67ca89SAndroid Build Coastguard Worker   __u8 name[32];
35*8d67ca89SAndroid Build Coastguard Worker   __u8 entity[16];
36*8d67ca89SAndroid Build Coastguard Worker   __u8 selector;
37*8d67ca89SAndroid Build Coastguard Worker   __u8 size;
38*8d67ca89SAndroid Build Coastguard Worker   __u8 offset;
39*8d67ca89SAndroid Build Coastguard Worker   __u32 v4l2_type;
40*8d67ca89SAndroid Build Coastguard Worker   __u32 data_type;
41*8d67ca89SAndroid Build Coastguard Worker   struct uvc_menu_info  * menu_info;
42*8d67ca89SAndroid Build Coastguard Worker   __u32 menu_count;
43*8d67ca89SAndroid Build Coastguard Worker   __u32 reserved[4];
44*8d67ca89SAndroid Build Coastguard Worker };
45*8d67ca89SAndroid Build Coastguard Worker struct uvc_xu_control_query {
46*8d67ca89SAndroid Build Coastguard Worker   __u8 unit;
47*8d67ca89SAndroid Build Coastguard Worker   __u8 selector;
48*8d67ca89SAndroid Build Coastguard Worker   __u8 query;
49*8d67ca89SAndroid Build Coastguard Worker   __u16 size;
50*8d67ca89SAndroid Build Coastguard Worker   __u8  * data;
51*8d67ca89SAndroid Build Coastguard Worker };
52*8d67ca89SAndroid Build Coastguard Worker #define UVCIOC_CTRL_MAP _IOWR('u', 0x20, struct uvc_xu_control_mapping)
53*8d67ca89SAndroid Build Coastguard Worker #define UVCIOC_CTRL_QUERY _IOWR('u', 0x21, struct uvc_xu_control_query)
54*8d67ca89SAndroid Build Coastguard Worker struct uvc_meta_buf {
55*8d67ca89SAndroid Build Coastguard Worker   __u64 ns;
56*8d67ca89SAndroid Build Coastguard Worker   __u16 sof;
57*8d67ca89SAndroid Build Coastguard Worker   __u8 length;
58*8d67ca89SAndroid Build Coastguard Worker   __u8 flags;
59*8d67ca89SAndroid Build Coastguard Worker   __u8 buf[];
60*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__));
61*8d67ca89SAndroid Build Coastguard Worker #endif
62