tizen 2.0
[external/module-init-tools.git] / tables.h
1 #ifndef MODINITTOOLS_TABLES_H
2 #define MODINITTOOLS_TABLES_H
3 #include <stddef.h>
4
5 /* Taken from the 2.5.49 kernel, with the kernel specific fields removed */
6 struct pci_device_id {
7         unsigned int vendor, device;            /* Vendor and device ID or PCI_ANY_ID */
8         unsigned int subvendor, subdevice;      /* Subsystem ID's or PCI_ANY_ID */
9         unsigned int class, class_mask;         /* (class,subclass,prog-if) triplet */
10 };
11 #define PCI_DEVICE_SIZE32 (6 * 4 + 4)
12 #define PCI_DEVICE_SIZE64 (6 * 4 + 8)
13
14 struct usb_device_id {
15         /* which fields to match against? */
16         unsigned short  match_flags;
17
18         /* Used for product specific matches; range is inclusive */
19         unsigned short  idVendor;
20         unsigned short  idProduct;
21         unsigned short  bcdDevice_lo;
22         unsigned short  bcdDevice_hi;
23
24         /* Used for device class matches */
25         unsigned char   bDeviceClass;
26         unsigned char   bDeviceSubClass;
27         unsigned char   bDeviceProtocol;
28
29         /* Used for interface class matches */
30         unsigned char   bInterfaceClass;
31         unsigned char   bInterfaceSubClass;
32         unsigned char   bInterfaceProtocol;
33
34 };
35 #define USB_DEVICE_SIZE32 (5 * 2 + 6 * 1 + 4)
36 #define USB_DEVICE_SIZE64 (5 * 2 + 6 * 1 + 8)
37
38 struct ieee1394_device_id {
39         unsigned int match_flags;
40         unsigned int vendor_id;
41         unsigned int model_id;
42         unsigned int specifier_id;
43         unsigned int version;
44 };
45 #define IEEE1394_DEVICE_SIZE32 (5 * 4 + 4)
46 #define IEEE1394_DEVICE_SIZE64 (5 * 4 + 4 /*padding*/ + 8)
47
48 struct ccw_device_id {
49         unsigned short match_flags;     /* which fields to match against */
50
51         unsigned short cu_type;         /* control unit type     */
52         unsigned short dev_type;        /* device type           */
53         unsigned char  cu_model;        /* control unit model    */
54         unsigned char  dev_model;       /* device model          */
55 };
56 #define CCW_DEVICE_SIZE32 (3 * 2 + 2 * 1 + 4)
57 #define CCW_DEVICE_SIZE64 (3 * 2 + 2 * 1 + 8)
58
59 struct pnp_device_id {
60         char id[8];
61 };
62 #define PNP_DEVICE_SIZE32 (8 + 4)
63 #define PNP_DEVICE_SIZE64 (8 + 8)
64
65 struct pnp_card_devid
66 {
67         char devid[8][8];
68 };
69 struct pnp_card_device_id_32 {
70         char id[8];
71         char driver_data[4];
72         char devid[8][8];
73 };
74 struct pnp_card_device_id_64 {
75         char id[8];
76         char driver_data[8];
77         char devid[8][8];
78 };
79 #define PNP_CARD_DEVICE_SIZE32 (sizeof(struct pnp_card_device_id_32))
80 #define PNP_CARD_DEVICE_SIZE64 (sizeof(struct pnp_card_device_id_64))
81 #define PNP_CARD_DEVICE_OFFSET32 (offsetof(struct pnp_card_device_id_32, devid))
82 #define PNP_CARD_DEVICE_OFFSET64 (offsetof(struct pnp_card_device_id_64, devid))
83 struct input_device_id_old_64 {
84         unsigned long long match_flags;
85         unsigned short bustype;
86         unsigned short vendor;
87         unsigned short product;
88         unsigned short version;
89         unsigned long long evbit[1];
90         unsigned long long keybit[8]; /* 512 bits */
91         unsigned long long relbit[1];
92         unsigned long long absbit[1]; /* 64 bits */
93         unsigned long long mscbit[1];
94         unsigned long long ledbit[1];
95         unsigned long long sndbit[1];
96         unsigned long long ffbit[2]; /* 128 bits */
97         unsigned long long driver_info;
98 };
99
100 struct input_device_id_old_32 {
101         unsigned int match_flags;
102         unsigned short bustype;
103         unsigned short vendor;
104         unsigned short product;
105         unsigned short version;
106         unsigned int evbit[1];
107         unsigned int keybit[16]; /* 512 bits */
108         unsigned int relbit[1];
109         unsigned int absbit[2]; /* 64 bits */
110         unsigned int mscbit[1];
111         unsigned int ledbit[1];
112         unsigned int sndbit[1];
113         unsigned int ffbit[4]; /* 128 bits */
114         unsigned int driver_info;
115 };
116
117 /* Whee... structure changed in 2.6.14 and broke module-init-tools. */
118 struct input_device_id_64 {
119         unsigned long long match_flags;
120         unsigned short bustype;
121         unsigned short vendor;
122         unsigned short product;
123         unsigned short version;
124         unsigned long long evbit[1];
125         unsigned long long keybit[8]; /* 512 bits */
126         unsigned long long relbit[1];
127         unsigned long long absbit[1]; /* 64 bits */
128         unsigned long long mscbit[1];
129         unsigned long long ledbit[1];
130         unsigned long long sndbit[1];
131         unsigned long long ffbit[2]; /* 128 bits */
132         unsigned long long swbit[1];
133         unsigned long long driver_info;
134 };
135
136 struct input_device_id_32 {
137         unsigned int match_flags;
138         unsigned short bustype;
139         unsigned short vendor;
140         unsigned short product;
141         unsigned short version;
142         unsigned int evbit[1];
143         unsigned int keybit[16]; /* 512 bits */
144         unsigned int relbit[1];
145         unsigned int absbit[2]; /* 64 bits */
146         unsigned int mscbit[1];
147         unsigned int ledbit[1];
148         unsigned int sndbit[1];
149         unsigned int ffbit[4]; /* 128 bits */
150         unsigned int swbit[1];
151         unsigned int driver_info;
152 };
153
154 /* These are the old sizes. */
155 #define INPUT_DEVICE_SIZE32 (4 + 4 * 2 + 4 + 16 * 4 + 4 + 2 * 4 + 4 + 4 + 4 + 4 * 4 + 4)
156 #define INPUT_DEVICE_SIZE64 (8 + 4 * 2 + 8 + 8 * 8 + 8 + 8 + 8 + 8 + 8 + 2 * 8 + 8)
157
158 struct serio_device_id {
159         unsigned char type;
160         unsigned char extra;
161         unsigned char id;
162         unsigned char proto;
163 };
164 #define SERIO_DEVICE_SIZE32 (4 * 1)
165 #define SERIO_DEVICE_SIZE64 (4 * 1 + 4)
166
167 struct of_device_id {
168         char name[32];
169         char type[32];
170         char compatible[128];
171 };
172
173 #define OF_DEVICE_SIZE32 (32 * 2 + 128 + 4)
174 #define OF_DEVICE_SIZE64 (32 * 2 + 128 + 8)
175
176 /* Functions provided by tables.c */
177 struct module;
178 int output_usb_table(struct module *modules, FILE *out, char *dirname);
179 int output_ieee1394_table(struct module *modules, FILE *out, char *dirname);
180 int output_pci_table(struct module *modules, FILE *out, char *dirname);
181 int output_ccw_table(struct module *modules, FILE *out, char *dirname);
182 int output_isapnp_table(struct module *modules, FILE *out, char *dirname);
183 int output_input_table(struct module *modules, FILE *out, char *dirname);
184 int output_serio_table(struct module *modules, FILE *out, char *dirname);
185 int output_of_table(struct module *modules, FILE *out, char *dirname);
186
187 #endif /* MODINITTOOLS_TABLES_H */