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