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