aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/mod/file2alias.c
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2007-10-12 21:27:47 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2007-10-12 21:27:47 -0400
commitb981d8b3f5e008ff10d993be633ad00564fc22cd (patch)
treee292dc07b22308912cf6a58354a608b9e5e8e1fd /scripts/mod/file2alias.c
parentb11d2127c4893a7315d1e16273bc8560049fa3ca (diff)
parent2b9e0aae1d50e880c58d46788e5e3ebd89d75d62 (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts: drivers/macintosh/adbhid.c
Diffstat (limited to 'scripts/mod/file2alias.c')
-rw-r--r--scripts/mod/file2alias.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index f646381dc015..36e3754db53a 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -290,6 +290,14 @@ static int do_serio_entry(const char *filename,
290 return 1; 290 return 1;
291} 291}
292 292
293/* looks like: "acpi:ACPI0003 or acpi:PNP0C0B" or "acpi:LNXVIDEO" */
294static int do_acpi_entry(const char *filename,
295 struct acpi_device_id *id, char *alias)
296{
297 sprintf(alias, "acpi*:%s:", id->id);
298 return 1;
299}
300
293/* looks like: "pnp:dD" */ 301/* looks like: "pnp:dD" */
294static int do_pnp_entry(const char *filename, 302static int do_pnp_entry(const char *filename,
295 struct pnp_device_id *id, char *alias) 303 struct pnp_device_id *id, char *alias)
@@ -476,6 +484,36 @@ static int do_parisc_entry(const char *filename, struct parisc_device_id *id,
476 return 1; 484 return 1;
477} 485}
478 486
487/* Looks like: sdio:cNvNdN. */
488static int do_sdio_entry(const char *filename,
489 struct sdio_device_id *id, char *alias)
490{
491 id->class = TO_NATIVE(id->class);
492 id->vendor = TO_NATIVE(id->vendor);
493 id->device = TO_NATIVE(id->device);
494
495 strcpy(alias, "sdio:");
496 ADD(alias, "c", id->class != (__u8)SDIO_ANY_ID, id->class);
497 ADD(alias, "v", id->vendor != (__u16)SDIO_ANY_ID, id->vendor);
498 ADD(alias, "d", id->device != (__u16)SDIO_ANY_ID, id->device);
499 return 1;
500}
501
502/* Looks like: ssb:vNidNrevN. */
503static int do_ssb_entry(const char *filename,
504 struct ssb_device_id *id, char *alias)
505{
506 id->vendor = TO_NATIVE(id->vendor);
507 id->coreid = TO_NATIVE(id->coreid);
508 id->revision = TO_NATIVE(id->revision);
509
510 strcpy(alias, "ssb:");
511 ADD(alias, "v", id->vendor != SSB_ANY_VENDOR, id->vendor);
512 ADD(alias, "id", id->coreid != SSB_ANY_ID, id->coreid);
513 ADD(alias, "rev", id->revision != SSB_ANY_REV, id->revision);
514 return 1;
515}
516
479/* Ignore any prefix, eg. v850 prepends _ */ 517/* Ignore any prefix, eg. v850 prepends _ */
480static inline int sym_is(const char *symbol, const char *name) 518static inline int sym_is(const char *symbol, const char *name)
481{ 519{
@@ -551,6 +589,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
551 do_table(symval, sym->st_size, 589 do_table(symval, sym->st_size,
552 sizeof(struct serio_device_id), "serio", 590 sizeof(struct serio_device_id), "serio",
553 do_serio_entry, mod); 591 do_serio_entry, mod);
592 else if (sym_is(symname, "__mod_acpi_device_table"))
593 do_table(symval, sym->st_size,
594 sizeof(struct acpi_device_id), "acpi",
595 do_acpi_entry, mod);
554 else if (sym_is(symname, "__mod_pnp_device_table")) 596 else if (sym_is(symname, "__mod_pnp_device_table"))
555 do_table(symval, sym->st_size, 597 do_table(symval, sym->st_size,
556 sizeof(struct pnp_device_id), "pnp", 598 sizeof(struct pnp_device_id), "pnp",
@@ -587,6 +629,14 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
587 do_table(symval, sym->st_size, 629 do_table(symval, sym->st_size,
588 sizeof(struct parisc_device_id), "parisc", 630 sizeof(struct parisc_device_id), "parisc",
589 do_parisc_entry, mod); 631 do_parisc_entry, mod);
632 else if (sym_is(symname, "__mod_sdio_device_table"))
633 do_table(symval, sym->st_size,
634 sizeof(struct sdio_device_id), "sdio",
635 do_sdio_entry, mod);
636 else if (sym_is(symname, "__mod_ssb_device_table"))
637 do_table(symval, sym->st_size,
638 sizeof(struct ssb_device_id), "ssb",
639 do_ssb_entry, mod);
590} 640}
591 641
592/* Now add out buffered information to the generated C source */ 642/* Now add out buffered information to the generated C source */