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 */ 17 struct 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 */