1 /**************************************************************************** 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 __UHID_H_ 20 #define __UHID_H_ 21 #include <linux/input.h> 22 #include <linux/types.h> 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #include <linux/hid.h> 25 enum uhid_event_type { 26 __UHID_LEGACY_CREATE, 27 UHID_DESTROY, 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 UHID_START, 30 UHID_STOP, 31 UHID_OPEN, 32 UHID_CLOSE, 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 UHID_OUTPUT, 35 __UHID_LEGACY_OUTPUT_EV, 36 __UHID_LEGACY_INPUT, 37 UHID_GET_REPORT, 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 UHID_GET_REPORT_REPLY, 40 UHID_CREATE2, 41 UHID_INPUT2, 42 UHID_SET_REPORT, 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 UHID_SET_REPORT_REPLY, 45 }; 46 struct uhid_create2_req { 47 __u8 name[128]; 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 __u8 phys[64]; 50 __u8 uniq[64]; 51 __u16 rd_size; 52 __u16 bus; 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 __u32 vendor; 55 __u32 product; 56 __u32 version; 57 __u32 country; 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 __u8 rd_data[HID_MAX_DESCRIPTOR_SIZE]; 60 } __attribute__((__packed__)); 61 enum uhid_dev_flag { 62 UHID_DEV_NUMBERED_FEATURE_REPORTS = (1ULL << 0), 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 UHID_DEV_NUMBERED_OUTPUT_REPORTS = (1ULL << 1), 65 UHID_DEV_NUMBERED_INPUT_REPORTS = (1ULL << 2), 66 }; 67 struct uhid_start_req { 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 __u64 dev_flags; 70 }; 71 #define UHID_DATA_MAX 4096 72 enum uhid_report_type { 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 UHID_FEATURE_REPORT, 75 UHID_OUTPUT_REPORT, 76 UHID_INPUT_REPORT, 77 }; 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 struct uhid_input2_req { 80 __u16 size; 81 __u8 data[UHID_DATA_MAX]; 82 } __attribute__((__packed__)); 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 struct uhid_output_req { 85 __u8 data[UHID_DATA_MAX]; 86 __u16 size; 87 __u8 rtype; 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 } __attribute__((__packed__)); 90 struct uhid_get_report_req { 91 __u32 id; 92 __u8 rnum; 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 __u8 rtype; 95 } __attribute__((__packed__)); 96 struct uhid_get_report_reply_req { 97 __u32 id; 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 __u16 err; 100 __u16 size; 101 __u8 data[UHID_DATA_MAX]; 102 } __attribute__((__packed__)); 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 struct uhid_set_report_req { 105 __u32 id; 106 __u8 rnum; 107 __u8 rtype; 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 __u16 size; 110 __u8 data[UHID_DATA_MAX]; 111 } __attribute__((__packed__)); 112 struct uhid_set_report_reply_req { 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 __u32 id; 115 __u16 err; 116 } __attribute__((__packed__)); 117 enum uhid_legacy_event_type { 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 UHID_CREATE = __UHID_LEGACY_CREATE, 120 UHID_OUTPUT_EV = __UHID_LEGACY_OUTPUT_EV, 121 UHID_INPUT = __UHID_LEGACY_INPUT, 122 UHID_FEATURE = UHID_GET_REPORT, 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 UHID_FEATURE_ANSWER = UHID_GET_REPORT_REPLY, 125 }; 126 struct uhid_create_req { 127 __u8 name[128]; 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 __u8 phys[64]; 130 __u8 uniq[64]; 131 __u8 __user * rd_data; 132 __u16 rd_size; 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 __u16 bus; 135 __u32 vendor; 136 __u32 product; 137 __u32 version; 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 __u32 country; 140 } __attribute__((__packed__)); 141 struct uhid_input_req { 142 __u8 data[UHID_DATA_MAX]; 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 __u16 size; 145 } __attribute__((__packed__)); 146 struct uhid_output_ev_req { 147 __u16 type; 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 __u16 code; 150 __s32 value; 151 } __attribute__((__packed__)); 152 struct uhid_feature_req { 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 __u32 id; 155 __u8 rnum; 156 __u8 rtype; 157 } __attribute__((__packed__)); 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 struct uhid_feature_answer_req { 160 __u32 id; 161 __u16 err; 162 __u16 size; 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 __u8 data[UHID_DATA_MAX]; 165 } __attribute__((__packed__)); 166 struct uhid_event { 167 __u32 type; 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 union { 170 struct uhid_create_req create; 171 struct uhid_input_req input; 172 struct uhid_output_req output; 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 struct uhid_output_ev_req output_ev; 175 struct uhid_feature_req feature; 176 struct uhid_get_report_req get_report; 177 struct uhid_feature_answer_req feature_answer; 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 struct uhid_get_report_reply_req get_report_reply; 180 struct uhid_create2_req create2; 181 struct uhid_input2_req input2; 182 struct uhid_set_report_req set_report; 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 struct uhid_set_report_reply_req set_report_reply; 185 struct uhid_start_req start; 186 } u; 187 } __attribute__((__packed__)); 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 #endif 190