1cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/****************************************************************************
2cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ****************************************************************************
3cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***
4cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***   This header was automatically generated from a Linux kernel header
5cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***   of the same name, to make information necessary for userspace to
6cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***   call into the kernel available to libc.  It contains only constants,
7cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***   structures, and macros generated from the original header, and thus,
8cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***   contains no copyrightable information.
9cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***
10cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***   To edit the content of this header, modify the corresponding
11cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***   source file (e.g. under external/kernel-headers/original/) then
12cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***   run bionic/libc/kernel/tools/update_all.py
13cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***
14cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***   Any manual change here will be lost the next time this script will
15cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***   be run. You've been warned!
16cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ***
17cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ****************************************************************************
18cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh ****************************************************************************/
19cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh#ifndef __UHID_H_
20cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh#define __UHID_H_
21cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh#include <linux/input.h>
22cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh#include <linux/types.h>
23cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsiehenum uhid_event_type {
25cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_CREATE,
26cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_DESTROY,
27cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_START,
28cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_STOP,
30cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_OPEN,
31cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_CLOSE,
32cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_OUTPUT,
33cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_OUTPUT_EV,
35cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_INPUT,
36cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_FEATURE,
37cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_FEATURE_ANSWER,
38cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh};
40cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsiehstruct uhid_create_req {
41cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u8 name[128];
42cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u8 phys[64];
43cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u8 uniq[64];
45cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u8 __user *rd_data;
46cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u16 rd_size;
47cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u16 bus;
48cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u32 vendor;
50cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u32 product;
51cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u32 version;
52cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u32 country;
53cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh} __attribute__((__packed__));
55cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh#define UHID_DATA_MAX 4096
56cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsiehenum uhid_report_type {
57cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_FEATURE_REPORT,
58cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_OUTPUT_REPORT,
60cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh UHID_INPUT_REPORT,
61cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh};
62cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsiehstruct uhid_input_req {
63cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u8 data[UHID_DATA_MAX];
65cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u16 size;
66cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh} __attribute__((__packed__));
67cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsiehstruct uhid_output_req {
68cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u8 data[UHID_DATA_MAX];
70cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u16 size;
71cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u8 rtype;
72cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh} __attribute__((__packed__));
73cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsiehstruct uhid_output_ev_req {
75cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u16 type;
76cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u16 code;
77cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __s32 value;
78cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh} __attribute__((__packed__));
80cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsiehstruct uhid_feature_req {
81cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u32 id;
82cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u8 rnum;
83cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u8 rtype;
85cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh} __attribute__((__packed__));
86cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsiehstruct uhid_feature_answer_req {
87cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u32 id;
88cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u16 err;
90cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u16 size;
91cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u8 data[UHID_DATA_MAX];
92cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh} __attribute__((__packed__));
93cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsiehstruct uhid_event {
95cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh __u32 type;
96cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh union {
97cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh struct uhid_create_req create;
98cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh struct uhid_input_req input;
100cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh struct uhid_output_req output;
101cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh struct uhid_output_ev_req output_ev;
102cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh struct uhid_feature_req feature;
103cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh struct uhid_feature_answer_req feature_answer;
105cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh } u;
106cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh} __attribute__((__packed__));
107cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh#endif
108cf138744ee2efefa4cd02ace5bedcdc56d750ad5Andrew Hsieh/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109