Rev 3120 | Rev 4279 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3120 | Rev 4065 | ||
---|---|---|---|
Line 31... | Line 31... | ||
31 | __u32 match_flags; |
31 | __u32 match_flags; |
32 | __u32 vendor_id; |
32 | __u32 vendor_id; |
33 | __u32 model_id; |
33 | __u32 model_id; |
34 | __u32 specifier_id; |
34 | __u32 specifier_id; |
35 | __u32 version; |
35 | __u32 version; |
36 | kernel_ulong_t driver_data |
36 | kernel_ulong_t driver_data; |
37 | __attribute__((aligned(sizeof(kernel_ulong_t)))); |
- | |
38 | }; |
37 | }; |
Line 39... | Line 38... | ||
39 | 38 | ||
40 | 39 | ||
Line 145... | Line 144... | ||
145 | struct hid_device_id { |
144 | struct hid_device_id { |
146 | __u16 bus; |
145 | __u16 bus; |
147 | __u16 group; |
146 | __u16 group; |
148 | __u32 vendor; |
147 | __u32 vendor; |
149 | __u32 product; |
148 | __u32 product; |
150 | kernel_ulong_t driver_data |
149 | kernel_ulong_t driver_data; |
151 | __attribute__((aligned(sizeof(kernel_ulong_t)))); |
- | |
152 | }; |
150 | }; |
Line 153... | Line 151... | ||
153 | 151 | ||
154 | /* s390 CCW devices */ |
152 | /* s390 CCW devices */ |
155 | struct ccw_device_id { |
153 | struct ccw_device_id { |
Line 170... | Line 168... | ||
170 | 168 | ||
171 | /* s390 AP bus devices */ |
169 | /* s390 AP bus devices */ |
172 | struct ap_device_id { |
170 | struct ap_device_id { |
173 | __u16 match_flags; /* which fields to match against */ |
171 | __u16 match_flags; /* which fields to match against */ |
174 | __u8 dev_type; /* device type */ |
- | |
175 | __u8 pad1; |
- | |
176 | __u32 pad2; |
172 | __u8 dev_type; /* device type */ |
177 | kernel_ulong_t driver_info; |
173 | kernel_ulong_t driver_info; |
Line 178... | Line 174... | ||
178 | }; |
174 | }; |
Line 179... | Line 175... | ||
179 | 175 | ||
180 | #define AP_DEVICE_ID_MATCH_DEVICE_TYPE 0x01 |
176 | #define AP_DEVICE_ID_MATCH_DEVICE_TYPE 0x01 |
181 | 177 | ||
182 | /* s390 css bus devices (subchannels) */ |
178 | /* s390 css bus devices (subchannels) */ |
183 | struct css_device_id { |
- | |
184 | __u8 match_flags; |
- | |
185 | __u8 type; /* subchannel type */ |
179 | struct css_device_id { |
186 | __u16 pad2; |
180 | __u8 match_flags; |
Line 187... | Line 181... | ||
187 | __u32 pad3; |
181 | __u8 type; /* subchannel type */ |
188 | kernel_ulong_t driver_data; |
- | |
Line 189... | Line 182... | ||
189 | }; |
182 | kernel_ulong_t driver_data; |
190 | 183 | }; |
|
191 | #define ACPI_ID_LEN 16 /* only 9 bytes needed here, 16 bytes are used */ |
184 | |
192 | /* to workaround crosscompile issues */ |
185 | #define ACPI_ID_LEN 9 |
Line 228... | Line 221... | ||
228 | struct of_device_id |
221 | struct of_device_id |
229 | { |
222 | { |
230 | char name[32]; |
223 | char name[32]; |
231 | char type[32]; |
224 | char type[32]; |
232 | char compatible[128]; |
225 | char compatible[128]; |
233 | #ifdef __KERNEL__ |
- | |
234 | const void *data; |
226 | const void *data; |
235 | #else |
- | |
236 | kernel_ulong_t data; |
- | |
237 | #endif |
- | |
238 | }; |
227 | }; |
Line 239... | Line 228... | ||
239 | 228 | ||
240 | /* VIO */ |
229 | /* VIO */ |
241 | struct vio_device_id { |
230 | struct vio_device_id { |
Line 257... | Line 246... | ||
257 | __u8 function; |
246 | __u8 function; |
Line 258... | Line 247... | ||
258 | 247 | ||
259 | /* for pseudo multi-function devices */ |
248 | /* for pseudo multi-function devices */ |
Line 260... | Line 249... | ||
260 | __u8 device_no; |
249 | __u8 device_no; |
261 | - | ||
Line 262... | Line 250... | ||
262 | __u32 prod_id_hash[4] |
250 | |
263 | __attribute__((aligned(sizeof(__u32)))); |
- | |
264 | 251 | __u32 prod_id_hash[4]; |
|
265 | /* not matched against in kernelspace*/ |
- | |
266 | #ifdef __KERNEL__ |
- | |
267 | const char * prod_id[4]; |
- | |
268 | #else |
- | |
Line 269... | Line 252... | ||
269 | kernel_ulong_t prod_id[4] |
252 | |
270 | __attribute__((aligned(sizeof(kernel_ulong_t)))); |
253 | /* not matched against in kernelspace*/ |
271 | #endif |
- | |
272 | 254 | const char * prod_id[4]; |
|
273 | /* not matched against */ |
- | |
274 | kernel_ulong_t driver_info; |
- | |
275 | #ifdef __KERNEL__ |
- | |
276 | char * cisfile; |
255 | |
Line 277... | Line 256... | ||
277 | #else |
256 | /* not matched against */ |
278 | kernel_ulong_t cisfile; |
257 | kernel_ulong_t driver_info; |
279 | #endif |
258 | char * cisfile; |
Line 370... | Line 349... | ||
370 | 349 | ||
371 | struct sdio_device_id { |
350 | struct sdio_device_id { |
372 | __u8 class; /* Standard interface or SDIO_ANY_ID */ |
351 | __u8 class; /* Standard interface or SDIO_ANY_ID */ |
373 | __u16 vendor; /* Vendor or SDIO_ANY_ID */ |
352 | __u16 vendor; /* Vendor or SDIO_ANY_ID */ |
374 | __u16 device; /* Device ID or SDIO_ANY_ID */ |
353 | __u16 device; /* Device ID or SDIO_ANY_ID */ |
375 | kernel_ulong_t driver_data /* Data private to the driver */ |
- | |
376 | __attribute__((aligned(sizeof(kernel_ulong_t)))); |
354 | kernel_ulong_t driver_data; /* Data private to the driver */ |
Line 377... | Line 355... | ||
377 | }; |
355 | }; |
378 | 356 | ||
379 | /* SSB core, see drivers/ssb/ */ |
357 | /* SSB core, see drivers/ssb/ */ |
380 | struct ssb_device_id { |
358 | struct ssb_device_id { |
381 | __u16 vendor; |
359 | __u16 vendor; |
382 | __u16 coreid; |
360 | __u16 coreid; |
- | 361 | __u8 revision; |
|
383 | __u8 revision; |
362 | __u8 __pad; |
384 | }; |
363 | } __attribute__((packed, aligned(2))); |
385 | #define SSB_DEVICE(_vendor, _coreid, _revision) \ |
364 | #define SSB_DEVICE(_vendor, _coreid, _revision) \ |
386 | { .vendor = _vendor, .coreid = _coreid, .revision = _revision, } |
365 | { .vendor = _vendor, .coreid = _coreid, .revision = _revision, } |
Line 395... | Line 374... | ||
395 | struct bcma_device_id { |
374 | struct bcma_device_id { |
396 | __u16 manuf; |
375 | __u16 manuf; |
397 | __u16 id; |
376 | __u16 id; |
398 | __u8 rev; |
377 | __u8 rev; |
399 | __u8 class; |
378 | __u8 class; |
400 | }; |
- | |
- | 379 | } __attribute__((packed,aligned(2))); |
|
401 | #define BCMA_CORE(_manuf, _id, _rev, _class) \ |
380 | #define BCMA_CORE(_manuf, _id, _rev, _class) \ |
402 | { .manuf = _manuf, .id = _id, .rev = _rev, .class = _class, } |
381 | { .manuf = _manuf, .id = _id, .rev = _rev, .class = _class, } |
403 | #define BCMA_CORETABLE_END \ |
382 | #define BCMA_CORETABLE_END \ |
404 | { 0, }, |
383 | { 0, }, |
Line 412... | Line 391... | ||
412 | __u32 device; |
391 | __u32 device; |
413 | __u32 vendor; |
392 | __u32 vendor; |
414 | }; |
393 | }; |
415 | #define VIRTIO_DEV_ANY_ID 0xffffffff |
394 | #define VIRTIO_DEV_ANY_ID 0xffffffff |
Line -... | Line 395... | ||
- | 395 | ||
- | 396 | /* |
|
- | 397 | * For Hyper-V devices we use the device guid as the id. |
|
- | 398 | */ |
|
- | 399 | struct hv_vmbus_device_id { |
|
- | 400 | __u8 guid[16]; |
|
- | 401 | kernel_ulong_t driver_data; /* Data private to the driver */ |
|
- | 402 | }; |
|
- | 403 | ||
- | 404 | /* rpmsg */ |
|
- | 405 | ||
- | 406 | #define RPMSG_NAME_SIZE 32 |
|
- | 407 | #define RPMSG_DEVICE_MODALIAS_FMT "rpmsg:%s" |
|
- | 408 | ||
- | 409 | struct rpmsg_device_id { |
|
- | 410 | char name[RPMSG_NAME_SIZE]; |
|
- | 411 | }; |
|
416 | 412 | ||
Line 417... | Line 413... | ||
417 | /* i2c */ |
413 | /* i2c */ |
418 | 414 | ||
Line 419... | Line 415... | ||
419 | #define I2C_NAME_SIZE 20 |
415 | #define I2C_NAME_SIZE 20 |
420 | #define I2C_MODULE_PREFIX "i2c:" |
416 | #define I2C_MODULE_PREFIX "i2c:" |
421 | 417 | ||
422 | struct i2c_device_id { |
- | |
423 | char name[I2C_NAME_SIZE]; |
418 | struct i2c_device_id { |
Line 424... | Line 419... | ||
424 | kernel_ulong_t driver_data /* Data private to the driver */ |
419 | char name[I2C_NAME_SIZE]; |
Line 425... | Line 420... | ||
425 | __attribute__((aligned(sizeof(kernel_ulong_t)))); |
420 | kernel_ulong_t driver_data; /* Data private to the driver */ |
426 | }; |
421 | }; |
Line 427... | Line 422... | ||
427 | 422 | ||
428 | /* spi */ |
423 | /* spi */ |
429 | 424 | ||
430 | #define SPI_NAME_SIZE 32 |
- | |
431 | #define SPI_MODULE_PREFIX "spi:" |
425 | #define SPI_NAME_SIZE 32 |
Line 432... | Line 426... | ||
432 | 426 | #define SPI_MODULE_PREFIX "spi:" |
|
433 | struct spi_device_id { |
427 | |
434 | char name[SPI_NAME_SIZE]; |
428 | struct spi_device_id { |
Line 459... | Line 453... | ||
459 | DMI_CHASSIS_ASSET_TAG, |
453 | DMI_CHASSIS_ASSET_TAG, |
460 | DMI_STRING_MAX, |
454 | DMI_STRING_MAX, |
461 | }; |
455 | }; |
Line 462... | Line 456... | ||
462 | 456 | ||
463 | struct dmi_strmatch { |
457 | struct dmi_strmatch { |
- | 458 | unsigned char slot:7; |
|
464 | unsigned char slot; |
459 | unsigned char exact_match:1; |
465 | char substr[79]; |
460 | char substr[79]; |
Line 466... | Line -... | ||
466 | }; |
- | |
467 | - | ||
468 | #ifndef __KERNEL__ |
- | |
469 | struct dmi_system_id { |
- | |
470 | kernel_ulong_t callback; |
- | |
471 | kernel_ulong_t ident; |
- | |
472 | struct dmi_strmatch matches[4]; |
- | |
473 | kernel_ulong_t driver_data |
- | |
474 | __attribute__((aligned(sizeof(kernel_ulong_t)))); |
- | |
475 | }; |
461 | }; |
476 | #else |
462 | |
477 | struct dmi_system_id { |
463 | struct dmi_system_id { |
478 | int (*callback)(const struct dmi_system_id *); |
464 | int (*callback)(const struct dmi_system_id *); |
479 | const char *ident; |
465 | const char *ident; |
Line 485... | Line 471... | ||
485 | * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it |
471 | * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it |
486 | * but this is enough for gcc 3.4.6 to error out: |
472 | * but this is enough for gcc 3.4.6 to error out: |
487 | * error: storage size of '__mod_dmi_device_table' isn't known |
473 | * error: storage size of '__mod_dmi_device_table' isn't known |
488 | */ |
474 | */ |
489 | #define dmi_device_id dmi_system_id |
475 | #define dmi_device_id dmi_system_id |
490 | #endif |
- | |
Line 491... | Line 476... | ||
491 | 476 | ||
- | 477 | #define DMI_MATCH(a, b) { .slot = a, .substr = b } |
|
Line 492... | Line 478... | ||
492 | #define DMI_MATCH(a, b) { a, b } |
478 | #define DMI_EXACT_MATCH(a, b) { .slot = a, .substr = b, .exact_match = 1 } |
493 | 479 | ||
Line 494... | Line 480... | ||
494 | #define PLATFORM_NAME_SIZE 20 |
480 | #define PLATFORM_NAME_SIZE 20 |
495 | #define PLATFORM_MODULE_PREFIX "platform:" |
481 | #define PLATFORM_MODULE_PREFIX "platform:" |
496 | 482 | ||
497 | struct platform_device_id { |
- | |
498 | char name[PLATFORM_NAME_SIZE]; |
483 | struct platform_device_id { |
Line 499... | Line 484... | ||
499 | kernel_ulong_t driver_data |
484 | char name[PLATFORM_NAME_SIZE]; |
Line 500... | Line 485... | ||
500 | __attribute__((aligned(sizeof(kernel_ulong_t)))); |
485 | kernel_ulong_t driver_data; |
Line 540... | Line 525... | ||
540 | unsigned short card_vendor, card_device; |
525 | unsigned short card_vendor, card_device; |
541 | unsigned short vendor, function; |
526 | unsigned short vendor, function; |
542 | kernel_ulong_t driver_data; /* data private to the driver */ |
527 | kernel_ulong_t driver_data; /* data private to the driver */ |
543 | }; |
528 | }; |
Line -... | Line 529... | ||
- | 529 | ||
- | 530 | /** |
|
- | 531 | * struct amba_id - identifies a device on an AMBA bus |
|
- | 532 | * @id: The significant bits if the hardware device ID |
|
- | 533 | * @mask: Bitmask specifying which bits of the id field are significant when |
|
- | 534 | * matching. A driver binds to a device when ((hardware device ID) & mask) |
|
- | 535 | * == id. |
|
- | 536 | * @data: Private data used by the driver. |
|
- | 537 | */ |
|
- | 538 | struct amba_id { |
|
- | 539 | unsigned int id; |
|
- | 540 | unsigned int mask; |
|
- | 541 | void *data; |
|
- | 542 | }; |
|
- | 543 | ||
- | 544 | /* |
|
- | 545 | * Match x86 CPUs for CPU specific drivers. |
|
- | 546 | * See documentation of "x86_match_cpu" for details. |
|
- | 547 | */ |
|
- | 548 | ||
- | 549 | struct x86_cpu_id { |
|
- | 550 | __u16 vendor; |
|
- | 551 | __u16 family; |
|
- | 552 | __u16 model; |
|
- | 553 | __u16 feature; /* bit index */ |
|
- | 554 | kernel_ulong_t driver_data; |
|
- | 555 | }; |
|
- | 556 | ||
- | 557 | #define X86_FEATURE_MATCH(x) \ |
|
- | 558 | { X86_VENDOR_ANY, X86_FAMILY_ANY, X86_MODEL_ANY, x } |
|
- | 559 | ||
- | 560 | #define X86_VENDOR_ANY 0xffff |
|
- | 561 | #define X86_FAMILY_ANY 0 |
|
- | 562 | #define X86_MODEL_ANY 0 |
|
- | 563 | #define X86_FEATURE_ANY 0 /* Same as FPU, you can't test for that */ |
|
- | 564 | ||
- | 565 | #define IPACK_ANY_FORMAT 0xff |
|
- | 566 | #define IPACK_ANY_ID (~0) |
|
- | 567 | struct ipack_device_id { |
|
- | 568 | __u8 format; /* Format version or IPACK_ANY_ID */ |
|
- | 569 | __u32 vendor; /* Vendor ID or IPACK_ANY_ID */ |
|
- | 570 | __u32 device; /* Device ID or IPACK_ANY_ID */ |
|
- | 571 | }; |
|
- | 572 | ||
- | 573 | #define MEI_CL_MODULE_PREFIX "mei:" |
|
- | 574 | #define MEI_CL_NAME_SIZE 32 |
|
- | 575 | ||
- | 576 | struct mei_cl_device_id { |
|
- | 577 | char name[MEI_CL_NAME_SIZE]; |
|
- | 578 | kernel_ulong_t driver_info; |
|
- | 579 | }; |
|
- | 580 | ||
- | 581 | /* RapidIO */ |
|
- | 582 | ||
- | 583 | #define RIO_ANY_ID 0xffff |
|
- | 584 | ||
- | 585 | /** |
|
- | 586 | * struct rio_device_id - RIO device identifier |
|
- | 587 | * @did: RapidIO device ID |
|
- | 588 | * @vid: RapidIO vendor ID |
|
- | 589 | * @asm_did: RapidIO assembly device ID |
|
- | 590 | * @asm_vid: RapidIO assembly vendor ID |
|
- | 591 | * |
|
- | 592 | * Identifies a RapidIO device based on both the device/vendor IDs and |
|
- | 593 | * the assembly device/vendor IDs. |
|
- | 594 | */ |
|
- | 595 | struct rio_device_id { |
|
- | 596 | __u16 did, vid; |
|
- | 597 | __u16 asm_did, asm_vid; |
|
- | 598 | }; |
|
544 | 599 |