| /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
| /* |
| * Copyright (c) 2007 Jiri Kosina |
| */ |
| /* |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms and conditions of the GNU General Public License, |
| * version 2, as published by the Free Software Foundation. |
| * |
| * You should have received a copy of the GNU General Public License along with |
| * this program; if not, write to the Free Software Foundation, Inc., |
| * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. |
| */ |
| #ifndef _UAPI_HIDRAW_H |
| #define _UAPI_HIDRAW_H |
| |
| |
| |
| #include <linux/hid.h> |
| #include <linux/types.h> |
| |
| struct hidraw_report_descriptor { |
| __u32 size; |
| __u8 value[HID_MAX_DESCRIPTOR_SIZE]; |
| }; |
| |
| struct hidraw_devinfo { |
| __u32 bustype; |
| __s16 vendor; |
| __s16 product; |
| }; |
| |
| /* ioctl interface */ |
| #define HIDIOCGRDESCSIZE _IOR('H', 0x01, int) |
| #define HIDIOCGRDESC _IOR('H', 0x02, struct hidraw_report_descriptor) |
| #define HIDIOCGRAWINFO _IOR('H', 0x03, struct hidraw_devinfo) |
| #define HIDIOCGRAWNAME(len) _IOC(_IOC_READ, 'H', 0x04, len) |
| #define HIDIOCGRAWPHYS(len) _IOC(_IOC_READ, 'H', 0x05, len) |
| /* The first byte of SFEATURE and GFEATURE is the report number */ |
| #define HIDIOCSFEATURE(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x06, len) |
| #define HIDIOCGFEATURE(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x07, len) |
| #define HIDIOCGRAWUNIQ(len) _IOC(_IOC_READ, 'H', 0x08, len) |
| /* The first byte of SINPUT and GINPUT is the report number */ |
| #define HIDIOCSINPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x09, len) |
| #define HIDIOCGINPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0A, len) |
| /* The first byte of SOUTPUT and GOUTPUT is the report number */ |
| #define HIDIOCSOUTPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0B, len) |
| #define HIDIOCGOUTPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0C, len) |
| |
| #define HIDRAW_FIRST_MINOR 0 |
| #define HIDRAW_MAX_DEVICES 64 |
| /* number of reports to buffer */ |
| #define HIDRAW_BUFFER_SIZE 64 |
| |
| |
| /* kernel-only API declarations */ |
| |
| #endif /* _UAPI_HIDRAW_H */ |