1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ****************************************************************************
11  ****************************************************************************/
12 #ifndef LINUX_MOD_DEVICETABLE_H
13 #define LINUX_MOD_DEVICETABLE_H
14 
15 #define PCI_ANY_ID (~0)
16 
17 struct pci_device_id {
18  __u32 vendor, device;
19  __u32 subvendor, subdevice;
20  __u32 class, class_mask;
21  kernel_ulong_t driver_data;
22 };
23 
24 #define IEEE1394_MATCH_VENDOR_ID 0x0001
25 #define IEEE1394_MATCH_MODEL_ID 0x0002
26 #define IEEE1394_MATCH_SPECIFIER_ID 0x0004
27 #define IEEE1394_MATCH_VERSION 0x0008
28 
29 struct ieee1394_device_id {
30  __u32 match_flags;
31  __u32 vendor_id;
32  __u32 model_id;
33  __u32 specifier_id;
34  __u32 version;
35  kernel_ulong_t driver_data
36  __attribute__((aligned(sizeof(kernel_ulong_t))));
37 };
38 
39 struct usb_device_id {
40 
41  __u16 match_flags;
42 
43  __u16 idVendor;
44  __u16 idProduct;
45  __u16 bcdDevice_lo;
46  __u16 bcdDevice_hi;
47 
48  __u8 bDeviceClass;
49  __u8 bDeviceSubClass;
50  __u8 bDeviceProtocol;
51 
52  __u8 bInterfaceClass;
53  __u8 bInterfaceSubClass;
54  __u8 bInterfaceProtocol;
55 
56  kernel_ulong_t driver_info;
57 };
58 
59 #define USB_DEVICE_ID_MATCH_VENDOR 0x0001
60 #define USB_DEVICE_ID_MATCH_PRODUCT 0x0002
61 #define USB_DEVICE_ID_MATCH_DEV_LO 0x0004
62 #define USB_DEVICE_ID_MATCH_DEV_HI 0x0008
63 #define USB_DEVICE_ID_MATCH_DEV_CLASS 0x0010
64 #define USB_DEVICE_ID_MATCH_DEV_SUBCLASS 0x0020
65 #define USB_DEVICE_ID_MATCH_DEV_PROTOCOL 0x0040
66 #define USB_DEVICE_ID_MATCH_INT_CLASS 0x0080
67 #define USB_DEVICE_ID_MATCH_INT_SUBCLASS 0x0100
68 #define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200
69 
70 struct ccw_device_id {
71  __u16 match_flags;
72 
73  __u16 cu_type;
74  __u16 dev_type;
75  __u8 cu_model;
76  __u8 dev_model;
77 
78  kernel_ulong_t driver_info;
79 };
80 
81 #define CCW_DEVICE_ID_MATCH_CU_TYPE 0x01
82 #define CCW_DEVICE_ID_MATCH_CU_MODEL 0x02
83 #define CCW_DEVICE_ID_MATCH_DEVICE_TYPE 0x04
84 #define CCW_DEVICE_ID_MATCH_DEVICE_MODEL 0x08
85 
86 #define PNP_ID_LEN 8
87 #define PNP_MAX_DEVICES 8
88 
89 struct pnp_device_id {
90  __u8 id[PNP_ID_LEN];
91  kernel_ulong_t driver_data;
92 };
93 
94 struct pnp_card_device_id {
95  __u8 id[PNP_ID_LEN];
96  kernel_ulong_t driver_data;
97  struct {
98  __u8 id[PNP_ID_LEN];
99  } devs[PNP_MAX_DEVICES];
100 };
101 
102 #define SERIO_ANY 0xff
103 
104 struct serio_device_id {
105  __u8 type;
106  __u8 extra;
107  __u8 id;
108  __u8 proto;
109 };
110 
111 struct of_device_id
112 {
113  char name[32];
114  char type[32];
115  char compatible[128];
116  kernel_ulong_t data;
117 };
118 
119 struct vio_device_id {
120  char type[32];
121  char compat[32];
122 };
123 
124 struct pcmcia_device_id {
125  __u16 match_flags;
126 
127  __u16 manf_id;
128  __u16 card_id;
129 
130  __u8 func_id;
131 
132  __u8 function;
133 
134  __u8 device_no;
135 
136  __u32 prod_id_hash[4]
137  __attribute__((aligned(sizeof(__u32))));
138 
139  kernel_ulong_t prod_id[4]
140  __attribute__((aligned(sizeof(kernel_ulong_t))));
141 
142  kernel_ulong_t driver_info;
143  kernel_ulong_t cisfile;
144 };
145 
146 #define PCMCIA_DEV_ID_MATCH_MANF_ID 0x0001
147 #define PCMCIA_DEV_ID_MATCH_CARD_ID 0x0002
148 #define PCMCIA_DEV_ID_MATCH_FUNC_ID 0x0004
149 #define PCMCIA_DEV_ID_MATCH_FUNCTION 0x0008
150 #define PCMCIA_DEV_ID_MATCH_PROD_ID1 0x0010
151 #define PCMCIA_DEV_ID_MATCH_PROD_ID2 0x0020
152 #define PCMCIA_DEV_ID_MATCH_PROD_ID3 0x0040
153 #define PCMCIA_DEV_ID_MATCH_PROD_ID4 0x0080
154 #define PCMCIA_DEV_ID_MATCH_DEVICE_NO 0x0100
155 #define PCMCIA_DEV_ID_MATCH_FAKE_CIS 0x0200
156 #define PCMCIA_DEV_ID_MATCH_ANONYMOUS 0x0400
157 
158 struct i2c_device_id {
159  __u16 id;
160 };
161 
162 #define INPUT_DEVICE_ID_EV_MAX 0x1f
163 #define INPUT_DEVICE_ID_KEY_MAX 0x1ff
164 #define INPUT_DEVICE_ID_REL_MAX 0x0f
165 #define INPUT_DEVICE_ID_ABS_MAX 0x3f
166 #define INPUT_DEVICE_ID_MSC_MAX 0x07
167 #define INPUT_DEVICE_ID_LED_MAX 0x0f
168 #define INPUT_DEVICE_ID_SND_MAX 0x07
169 #define INPUT_DEVICE_ID_FF_MAX 0x7f
170 #define INPUT_DEVICE_ID_SW_MAX 0x0f
171 
172 #define INPUT_DEVICE_ID_MATCH_BUS 1
173 #define INPUT_DEVICE_ID_MATCH_VENDOR 2
174 #define INPUT_DEVICE_ID_MATCH_PRODUCT 4
175 #define INPUT_DEVICE_ID_MATCH_VERSION 8
176 
177 #define INPUT_DEVICE_ID_MATCH_EVBIT 0x0010
178 #define INPUT_DEVICE_ID_MATCH_KEYBIT 0x0020
179 #define INPUT_DEVICE_ID_MATCH_RELBIT 0x0040
180 #define INPUT_DEVICE_ID_MATCH_ABSBIT 0x0080
181 #define INPUT_DEVICE_ID_MATCH_MSCIT 0x0100
182 #define INPUT_DEVICE_ID_MATCH_LEDBIT 0x0200
183 #define INPUT_DEVICE_ID_MATCH_SNDBIT 0x0400
184 #define INPUT_DEVICE_ID_MATCH_FFBIT 0x0800
185 #define INPUT_DEVICE_ID_MATCH_SWBIT 0x1000
186 
187 struct input_device_id {
188 
189  kernel_ulong_t flags;
190 
191  __u16 bustype;
192  __u16 vendor;
193  __u16 product;
194  __u16 version;
195 
196  kernel_ulong_t evbit[INPUT_DEVICE_ID_EV_MAX / BITS_PER_LONG + 1];
197  kernel_ulong_t keybit[INPUT_DEVICE_ID_KEY_MAX / BITS_PER_LONG + 1];
198  kernel_ulong_t relbit[INPUT_DEVICE_ID_REL_MAX / BITS_PER_LONG + 1];
199  kernel_ulong_t absbit[INPUT_DEVICE_ID_ABS_MAX / BITS_PER_LONG + 1];
200  kernel_ulong_t mscbit[INPUT_DEVICE_ID_MSC_MAX / BITS_PER_LONG + 1];
201  kernel_ulong_t ledbit[INPUT_DEVICE_ID_LED_MAX / BITS_PER_LONG + 1];
202  kernel_ulong_t sndbit[INPUT_DEVICE_ID_SND_MAX / BITS_PER_LONG + 1];
203  kernel_ulong_t ffbit[INPUT_DEVICE_ID_FF_MAX / BITS_PER_LONG + 1];
204  kernel_ulong_t swbit[INPUT_DEVICE_ID_SW_MAX / BITS_PER_LONG + 1];
205 
206  kernel_ulong_t driver_info;
207 };
208 
209 #endif
210