1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __LINUX_USB_IOWARRIOR_H
3#define __LINUX_USB_IOWARRIOR_H
4
5#define CODEMERCS_MAGIC_NUMBER 0xC0 /* like COde Mercenaries */
6
7/* Define the ioctl commands for reading and writing data */
8#define IOW_WRITE _IOW(CODEMERCS_MAGIC_NUMBER, 1, __u8 *)
9#define IOW_READ _IOW(CODEMERCS_MAGIC_NUMBER, 2, __u8 *)
10
11/*
12 A struct for available device info which is read
13 with the ioctl IOW_GETINFO.
14 To be compatible with 2.4 userspace which didn't have an easy way to get
15 this information.
16*/
17struct iowarrior_info {
18 /* vendor id : supposed to be USB_VENDOR_ID_CODEMERCS in all cases */
19 __u32 vendor;
20 /* product id : depends on type of chip (USB_DEVICE_ID_CODEMERCS_X) */
21 __u32 product;
22 /* the serial number of our chip (if a serial-number is not available
23 * this is empty string) */
24 __u8 serial[9];
25 /* revision number of the chip */
26 __u32 revision;
27 /* USB-speed of the device (0=UNKNOWN, 1=LOW, 2=FULL 3=HIGH) */
28 __u32 speed;
29 /* power consumption of the device in mA */
30 __u32 power;
31 /* the number of the endpoint */
32 __u32 if_num;
33 /* size of the data-packets on this interface */
34 __u32 report_size;
35};
36
37/*
38 Get some device-information (product-id , serial-number etc.)
39 in order to identify a chip.
40*/
41#define IOW_GETINFO _IOR(CODEMERCS_MAGIC_NUMBER, 3, struct iowarrior_info)
42
43#endif /* __LINUX_USB_IOWARRIOR_H */
44

source code of linux/include/linux/usb/iowarrior.h