1*cda5da8dSAndroid Build Coastguard Worker /* 2*cda5da8dSAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*cda5da8dSAndroid Build Coastguard Worker * 4*cda5da8dSAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*cda5da8dSAndroid Build Coastguard Worker * for more information. 6*cda5da8dSAndroid Build Coastguard Worker */ 7*cda5da8dSAndroid Build Coastguard Worker #ifndef __UHID_H_ 8*cda5da8dSAndroid Build Coastguard Worker #define __UHID_H_ 9*cda5da8dSAndroid Build Coastguard Worker #include <linux/input.h> 10*cda5da8dSAndroid Build Coastguard Worker #include <linux/types.h> 11*cda5da8dSAndroid Build Coastguard Worker #include <linux/hid.h> 12*cda5da8dSAndroid Build Coastguard Worker enum uhid_event_type { 13*cda5da8dSAndroid Build Coastguard Worker __UHID_LEGACY_CREATE, 14*cda5da8dSAndroid Build Coastguard Worker UHID_DESTROY, 15*cda5da8dSAndroid Build Coastguard Worker UHID_START, 16*cda5da8dSAndroid Build Coastguard Worker UHID_STOP, 17*cda5da8dSAndroid Build Coastguard Worker UHID_OPEN, 18*cda5da8dSAndroid Build Coastguard Worker UHID_CLOSE, 19*cda5da8dSAndroid Build Coastguard Worker UHID_OUTPUT, 20*cda5da8dSAndroid Build Coastguard Worker __UHID_LEGACY_OUTPUT_EV, 21*cda5da8dSAndroid Build Coastguard Worker __UHID_LEGACY_INPUT, 22*cda5da8dSAndroid Build Coastguard Worker UHID_GET_REPORT, 23*cda5da8dSAndroid Build Coastguard Worker UHID_GET_REPORT_REPLY, 24*cda5da8dSAndroid Build Coastguard Worker UHID_CREATE2, 25*cda5da8dSAndroid Build Coastguard Worker UHID_INPUT2, 26*cda5da8dSAndroid Build Coastguard Worker UHID_SET_REPORT, 27*cda5da8dSAndroid Build Coastguard Worker UHID_SET_REPORT_REPLY, 28*cda5da8dSAndroid Build Coastguard Worker }; 29*cda5da8dSAndroid Build Coastguard Worker struct uhid_create2_req { 30*cda5da8dSAndroid Build Coastguard Worker __u8 name[128]; 31*cda5da8dSAndroid Build Coastguard Worker __u8 phys[64]; 32*cda5da8dSAndroid Build Coastguard Worker __u8 uniq[64]; 33*cda5da8dSAndroid Build Coastguard Worker __u16 rd_size; 34*cda5da8dSAndroid Build Coastguard Worker __u16 bus; 35*cda5da8dSAndroid Build Coastguard Worker __u32 vendor; 36*cda5da8dSAndroid Build Coastguard Worker __u32 product; 37*cda5da8dSAndroid Build Coastguard Worker __u32 version; 38*cda5da8dSAndroid Build Coastguard Worker __u32 country; 39*cda5da8dSAndroid Build Coastguard Worker __u8 rd_data[HID_MAX_DESCRIPTOR_SIZE]; 40*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 41*cda5da8dSAndroid Build Coastguard Worker enum uhid_dev_flag { 42*cda5da8dSAndroid Build Coastguard Worker UHID_DEV_NUMBERED_FEATURE_REPORTS = (1ULL << 0), 43*cda5da8dSAndroid Build Coastguard Worker UHID_DEV_NUMBERED_OUTPUT_REPORTS = (1ULL << 1), 44*cda5da8dSAndroid Build Coastguard Worker UHID_DEV_NUMBERED_INPUT_REPORTS = (1ULL << 2), 45*cda5da8dSAndroid Build Coastguard Worker }; 46*cda5da8dSAndroid Build Coastguard Worker struct uhid_start_req { 47*cda5da8dSAndroid Build Coastguard Worker __u64 dev_flags; 48*cda5da8dSAndroid Build Coastguard Worker }; 49*cda5da8dSAndroid Build Coastguard Worker #define UHID_DATA_MAX 4096 50*cda5da8dSAndroid Build Coastguard Worker enum uhid_report_type { 51*cda5da8dSAndroid Build Coastguard Worker UHID_FEATURE_REPORT, 52*cda5da8dSAndroid Build Coastguard Worker UHID_OUTPUT_REPORT, 53*cda5da8dSAndroid Build Coastguard Worker UHID_INPUT_REPORT, 54*cda5da8dSAndroid Build Coastguard Worker }; 55*cda5da8dSAndroid Build Coastguard Worker struct uhid_input2_req { 56*cda5da8dSAndroid Build Coastguard Worker __u16 size; 57*cda5da8dSAndroid Build Coastguard Worker __u8 data[UHID_DATA_MAX]; 58*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 59*cda5da8dSAndroid Build Coastguard Worker struct uhid_output_req { 60*cda5da8dSAndroid Build Coastguard Worker __u8 data[UHID_DATA_MAX]; 61*cda5da8dSAndroid Build Coastguard Worker __u16 size; 62*cda5da8dSAndroid Build Coastguard Worker __u8 rtype; 63*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 64*cda5da8dSAndroid Build Coastguard Worker struct uhid_get_report_req { 65*cda5da8dSAndroid Build Coastguard Worker __u32 id; 66*cda5da8dSAndroid Build Coastguard Worker __u8 rnum; 67*cda5da8dSAndroid Build Coastguard Worker __u8 rtype; 68*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 69*cda5da8dSAndroid Build Coastguard Worker struct uhid_get_report_reply_req { 70*cda5da8dSAndroid Build Coastguard Worker __u32 id; 71*cda5da8dSAndroid Build Coastguard Worker __u16 err; 72*cda5da8dSAndroid Build Coastguard Worker __u16 size; 73*cda5da8dSAndroid Build Coastguard Worker __u8 data[UHID_DATA_MAX]; 74*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 75*cda5da8dSAndroid Build Coastguard Worker struct uhid_set_report_req { 76*cda5da8dSAndroid Build Coastguard Worker __u32 id; 77*cda5da8dSAndroid Build Coastguard Worker __u8 rnum; 78*cda5da8dSAndroid Build Coastguard Worker __u8 rtype; 79*cda5da8dSAndroid Build Coastguard Worker __u16 size; 80*cda5da8dSAndroid Build Coastguard Worker __u8 data[UHID_DATA_MAX]; 81*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 82*cda5da8dSAndroid Build Coastguard Worker struct uhid_set_report_reply_req { 83*cda5da8dSAndroid Build Coastguard Worker __u32 id; 84*cda5da8dSAndroid Build Coastguard Worker __u16 err; 85*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 86*cda5da8dSAndroid Build Coastguard Worker enum uhid_legacy_event_type { 87*cda5da8dSAndroid Build Coastguard Worker UHID_CREATE = __UHID_LEGACY_CREATE, 88*cda5da8dSAndroid Build Coastguard Worker UHID_OUTPUT_EV = __UHID_LEGACY_OUTPUT_EV, 89*cda5da8dSAndroid Build Coastguard Worker UHID_INPUT = __UHID_LEGACY_INPUT, 90*cda5da8dSAndroid Build Coastguard Worker UHID_FEATURE = UHID_GET_REPORT, 91*cda5da8dSAndroid Build Coastguard Worker UHID_FEATURE_ANSWER = UHID_GET_REPORT_REPLY, 92*cda5da8dSAndroid Build Coastguard Worker }; 93*cda5da8dSAndroid Build Coastguard Worker struct uhid_create_req { 94*cda5da8dSAndroid Build Coastguard Worker __u8 name[128]; 95*cda5da8dSAndroid Build Coastguard Worker __u8 phys[64]; 96*cda5da8dSAndroid Build Coastguard Worker __u8 uniq[64]; 97*cda5da8dSAndroid Build Coastguard Worker __u8 * rd_data; 98*cda5da8dSAndroid Build Coastguard Worker __u16 rd_size; 99*cda5da8dSAndroid Build Coastguard Worker __u16 bus; 100*cda5da8dSAndroid Build Coastguard Worker __u32 vendor; 101*cda5da8dSAndroid Build Coastguard Worker __u32 product; 102*cda5da8dSAndroid Build Coastguard Worker __u32 version; 103*cda5da8dSAndroid Build Coastguard Worker __u32 country; 104*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 105*cda5da8dSAndroid Build Coastguard Worker struct uhid_input_req { 106*cda5da8dSAndroid Build Coastguard Worker __u8 data[UHID_DATA_MAX]; 107*cda5da8dSAndroid Build Coastguard Worker __u16 size; 108*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 109*cda5da8dSAndroid Build Coastguard Worker struct uhid_output_ev_req { 110*cda5da8dSAndroid Build Coastguard Worker __u16 type; 111*cda5da8dSAndroid Build Coastguard Worker __u16 code; 112*cda5da8dSAndroid Build Coastguard Worker __s32 value; 113*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 114*cda5da8dSAndroid Build Coastguard Worker struct uhid_feature_req { 115*cda5da8dSAndroid Build Coastguard Worker __u32 id; 116*cda5da8dSAndroid Build Coastguard Worker __u8 rnum; 117*cda5da8dSAndroid Build Coastguard Worker __u8 rtype; 118*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 119*cda5da8dSAndroid Build Coastguard Worker struct uhid_feature_answer_req { 120*cda5da8dSAndroid Build Coastguard Worker __u32 id; 121*cda5da8dSAndroid Build Coastguard Worker __u16 err; 122*cda5da8dSAndroid Build Coastguard Worker __u16 size; 123*cda5da8dSAndroid Build Coastguard Worker __u8 data[UHID_DATA_MAX]; 124*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 125*cda5da8dSAndroid Build Coastguard Worker struct uhid_event { 126*cda5da8dSAndroid Build Coastguard Worker __u32 type; 127*cda5da8dSAndroid Build Coastguard Worker union { 128*cda5da8dSAndroid Build Coastguard Worker struct uhid_create_req create; 129*cda5da8dSAndroid Build Coastguard Worker struct uhid_input_req input; 130*cda5da8dSAndroid Build Coastguard Worker struct uhid_output_req output; 131*cda5da8dSAndroid Build Coastguard Worker struct uhid_output_ev_req output_ev; 132*cda5da8dSAndroid Build Coastguard Worker struct uhid_feature_req feature; 133*cda5da8dSAndroid Build Coastguard Worker struct uhid_get_report_req get_report; 134*cda5da8dSAndroid Build Coastguard Worker struct uhid_feature_answer_req feature_answer; 135*cda5da8dSAndroid Build Coastguard Worker struct uhid_get_report_reply_req get_report_reply; 136*cda5da8dSAndroid Build Coastguard Worker struct uhid_create2_req create2; 137*cda5da8dSAndroid Build Coastguard Worker struct uhid_input2_req input2; 138*cda5da8dSAndroid Build Coastguard Worker struct uhid_set_report_req set_report; 139*cda5da8dSAndroid Build Coastguard Worker struct uhid_set_report_reply_req set_report_reply; 140*cda5da8dSAndroid Build Coastguard Worker struct uhid_start_req start; 141*cda5da8dSAndroid Build Coastguard Worker } u; 142*cda5da8dSAndroid Build Coastguard Worker } __attribute__((__packed__)); 143*cda5da8dSAndroid Build Coastguard Worker #endif 144