xref: /aosp_15_r20/external/kernel-headers/original/uapi/linux/hidraw.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*f80ad8b4SAndroid Build Coastguard Worker /*
3*f80ad8b4SAndroid Build Coastguard Worker  *  Copyright (c) 2007 Jiri Kosina
4*f80ad8b4SAndroid Build Coastguard Worker  */
5*f80ad8b4SAndroid Build Coastguard Worker /*
6*f80ad8b4SAndroid Build Coastguard Worker  * This program is free software; you can redistribute it and/or modify it
7*f80ad8b4SAndroid Build Coastguard Worker  * under the terms and conditions of the GNU General Public License,
8*f80ad8b4SAndroid Build Coastguard Worker  * version 2, as published by the Free Software Foundation.
9*f80ad8b4SAndroid Build Coastguard Worker  *
10*f80ad8b4SAndroid Build Coastguard Worker  * You should have received a copy of the GNU General Public License along with
11*f80ad8b4SAndroid Build Coastguard Worker  * this program; if not, write to the Free Software Foundation, Inc.,
12*f80ad8b4SAndroid Build Coastguard Worker  * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
13*f80ad8b4SAndroid Build Coastguard Worker  */
14*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_HIDRAW_H
15*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_HIDRAW_H
16*f80ad8b4SAndroid Build Coastguard Worker 
17*f80ad8b4SAndroid Build Coastguard Worker 
18*f80ad8b4SAndroid Build Coastguard Worker 
19*f80ad8b4SAndroid Build Coastguard Worker #include <linux/hid.h>
20*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h>
21*f80ad8b4SAndroid Build Coastguard Worker 
22*f80ad8b4SAndroid Build Coastguard Worker struct hidraw_report_descriptor {
23*f80ad8b4SAndroid Build Coastguard Worker 	__u32 size;
24*f80ad8b4SAndroid Build Coastguard Worker 	__u8 value[HID_MAX_DESCRIPTOR_SIZE];
25*f80ad8b4SAndroid Build Coastguard Worker };
26*f80ad8b4SAndroid Build Coastguard Worker 
27*f80ad8b4SAndroid Build Coastguard Worker struct hidraw_devinfo {
28*f80ad8b4SAndroid Build Coastguard Worker 	__u32 bustype;
29*f80ad8b4SAndroid Build Coastguard Worker 	__s16 vendor;
30*f80ad8b4SAndroid Build Coastguard Worker 	__s16 product;
31*f80ad8b4SAndroid Build Coastguard Worker };
32*f80ad8b4SAndroid Build Coastguard Worker 
33*f80ad8b4SAndroid Build Coastguard Worker /* ioctl interface */
34*f80ad8b4SAndroid Build Coastguard Worker #define HIDIOCGRDESCSIZE	_IOR('H', 0x01, int)
35*f80ad8b4SAndroid Build Coastguard Worker #define HIDIOCGRDESC		_IOR('H', 0x02, struct hidraw_report_descriptor)
36*f80ad8b4SAndroid Build Coastguard Worker #define HIDIOCGRAWINFO		_IOR('H', 0x03, struct hidraw_devinfo)
37*f80ad8b4SAndroid Build Coastguard Worker #define HIDIOCGRAWNAME(len)     _IOC(_IOC_READ, 'H', 0x04, len)
38*f80ad8b4SAndroid Build Coastguard Worker #define HIDIOCGRAWPHYS(len)     _IOC(_IOC_READ, 'H', 0x05, len)
39*f80ad8b4SAndroid Build Coastguard Worker /* The first byte of SFEATURE and GFEATURE is the report number */
40*f80ad8b4SAndroid Build Coastguard Worker #define HIDIOCSFEATURE(len)    _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x06, len)
41*f80ad8b4SAndroid Build Coastguard Worker #define HIDIOCGFEATURE(len)    _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x07, len)
42*f80ad8b4SAndroid Build Coastguard Worker #define HIDIOCGRAWUNIQ(len)     _IOC(_IOC_READ, 'H', 0x08, len)
43*f80ad8b4SAndroid Build Coastguard Worker /* The first byte of SINPUT and GINPUT is the report number */
44*f80ad8b4SAndroid Build Coastguard Worker #define HIDIOCSINPUT(len)    _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x09, len)
45*f80ad8b4SAndroid Build Coastguard Worker #define HIDIOCGINPUT(len)    _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0A, len)
46*f80ad8b4SAndroid Build Coastguard Worker /* The first byte of SOUTPUT and GOUTPUT is the report number */
47*f80ad8b4SAndroid Build Coastguard Worker #define HIDIOCSOUTPUT(len)    _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0B, len)
48*f80ad8b4SAndroid Build Coastguard Worker #define HIDIOCGOUTPUT(len)    _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0C, len)
49*f80ad8b4SAndroid Build Coastguard Worker 
50*f80ad8b4SAndroid Build Coastguard Worker #define HIDRAW_FIRST_MINOR 0
51*f80ad8b4SAndroid Build Coastguard Worker #define HIDRAW_MAX_DEVICES 64
52*f80ad8b4SAndroid Build Coastguard Worker /* number of reports to buffer */
53*f80ad8b4SAndroid Build Coastguard Worker #define HIDRAW_BUFFER_SIZE 64
54*f80ad8b4SAndroid Build Coastguard Worker 
55*f80ad8b4SAndroid Build Coastguard Worker 
56*f80ad8b4SAndroid Build Coastguard Worker /* kernel-only API declarations */
57*f80ad8b4SAndroid Build Coastguard Worker 
58*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_HIDRAW_H */
59