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