111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   To edit the content of this header, modify the corresponding
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   source file (e.g. under external/kernel-headers/original/) then
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   run bionic/libc/kernel/tools/update_all.py
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   Any manual change here will be lost the next time this script will
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   be run. You've been warned!
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _UAPI_HIDDEV_H
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _UAPI_HIDDEV_H
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h>
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct hiddev_event {
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned hid;
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert signed int value;
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct hiddev_devinfo {
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 bustype;
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 busnum;
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 devnum;
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ifnum;
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s16 vendor;
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s16 product;
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s16 version;
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 num_applications;
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct hiddev_collection_info {
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 index;
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 type;
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 usage;
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 level;
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_STRING_SIZE 256
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct hiddev_string_descriptor {
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 index;
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char value[HID_STRING_SIZE];
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct hiddev_report_info {
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 report_type;
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 report_id;
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 num_fields;
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_REPORT_ID_UNKNOWN 0xffffffff
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_REPORT_ID_FIRST 0x00000100
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_REPORT_ID_NEXT 0x00000200
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_REPORT_ID_MASK 0x000000ff
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_REPORT_ID_MAX 0x000000ff
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_REPORT_TYPE_INPUT 1
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_REPORT_TYPE_OUTPUT 2
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_REPORT_TYPE_FEATURE 3
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_REPORT_TYPE_MIN 1
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_REPORT_TYPE_MAX 3
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct hiddev_field_info {
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 report_type;
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 report_id;
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 field_index;
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 maxusage;
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 flags;
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 physical;
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 logical;
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 application;
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 logical_minimum;
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 logical_maximum;
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 physical_minimum;
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 physical_maximum;
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 unit_exponent;
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 unit;
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_FIELD_CONSTANT 0x001
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_FIELD_VARIABLE 0x002
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_FIELD_RELATIVE 0x004
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_FIELD_WRAP 0x008
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_FIELD_NONLINEAR 0x010
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_FIELD_NO_PREFERRED 0x020
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_FIELD_NULL_STATE 0x040
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_FIELD_VOLATILE 0x080
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_FIELD_BUFFERED_BYTE 0x100
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct hiddev_usage_ref {
10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 report_type;
10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 report_id;
10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 field_index;
10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 usage_index;
11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 usage_code;
11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 value;
11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_MAX_MULTI_USAGES 1024
11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct hiddev_usage_ref_multi {
11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct hiddev_usage_ref uref;
11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 num_values;
11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 values[HID_MAX_MULTI_USAGES];
12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_FIELD_INDEX_NONE 0xffffffff
12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HID_VERSION 0x010004
12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGVERSION _IOR('H', 0x01, int)
12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCAPPLICATION _IO('H', 0x02)
12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGDEVINFO _IOR('H', 0x03, struct hiddev_devinfo)
12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGSTRING _IOR('H', 0x04, struct hiddev_string_descriptor)
12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCINITREPORT _IO('H', 0x05)
13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGNAME(len) _IOC(_IOC_READ, 'H', 0x06, len)
13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGREPORT _IOW('H', 0x07, struct hiddev_report_info)
13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCSREPORT _IOW('H', 0x08, struct hiddev_report_info)
13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGREPORTINFO _IOWR('H', 0x09, struct hiddev_report_info)
13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGFIELDINFO _IOWR('H', 0x0A, struct hiddev_field_info)
13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGUSAGE _IOWR('H', 0x0B, struct hiddev_usage_ref)
13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCSUSAGE _IOW('H', 0x0C, struct hiddev_usage_ref)
13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGUCODE _IOWR('H', 0x0D, struct hiddev_usage_ref)
14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGFLAG _IOR('H', 0x0E, int)
14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCSFLAG _IOW('H', 0x0F, int)
14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGCOLLECTIONINDEX _IOW('H', 0x10, struct hiddev_usage_ref)
14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGCOLLECTIONINFO _IOWR('H', 0x11, struct hiddev_collection_info)
14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGPHYS(len) _IOC(_IOC_READ, 'H', 0x12, len)
14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCGUSAGES _IOWR('H', 0x13, struct hiddev_usage_ref_multi)
14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDIOCSUSAGES _IOW('H', 0x14, struct hiddev_usage_ref_multi)
14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDDEV_FLAG_UREF 0x1
15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDDEV_FLAG_REPORT 0x2
15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define HIDDEV_FLAGS 0x3
15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154