xref: /linux-6.15/include/linux/usb/iowarrior.h (revision ba6e8564)
1 #ifndef _IOWARRIOR_H_
2 #define _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 */
16 struct iowarrior_info {
17 	__u32 vendor;		/* vendor id : supposed to be USB_VENDOR_ID_CODEMERCS in all cases */
18 	__u32 product;		/* product id : depends on type of chip (USB_DEVICE_ID_CODEMERCS_XXXXX) */
19 	__u8 serial[9];		/* the serial number of our chip (if a serial-number is not available this is empty string) */
20 	__u32 revision;		/* revision number of the chip */
21 	__u32 speed;		/* USB-speed of the device (0=UNKNOWN, 1=LOW, 2=FULL 3=HIGH) */
22 	__u32 power;		/* power consumption of the device in mA */
23 	__u32 if_num;		/* the number of the endpoint */
24 	__u32 report_size;	/* size of the data-packets on this interface */
25 };
26 
27 /*
28   Get some device-information (product-id , serial-number etc.)
29   in order to identify a chip.
30 */
31 #define IOW_GETINFO _IOR(CODEMERCS_MAGIC_NUMBER, 3, struct iowarrior_info)
32 
33 #endif  /* _IOWARRIOR_H_ */
34