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
17struct 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
29struct 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
39struct 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
70struct 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
89struct pnp_device_id {
90 __u8 id[PNP_ID_LEN];
91 kernel_ulong_t driver_data;
92};
93
94struct 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
104struct serio_device_id {
105 __u8 type;
106 __u8 extra;
107 __u8 id;
108 __u8 proto;
109};
110
111struct of_device_id
112{
113 char name[32];
114 char type[32];
115 char compatible[128];
116 kernel_ulong_t data;
117};
118
119struct vio_device_id {
120 char type[32];
121 char compat[32];
122};
123
124struct 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
158struct 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
187struct 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