diff options
Diffstat (limited to 'scripts/mod/file2alias.c')
-rw-r--r-- | scripts/mod/file2alias.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index fffedc5b1bc1..6c39c6add243 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c @@ -29,9 +29,7 @@ typedef Elf64_Addr kernel_ulong_t; #include <ctype.h> -typedef uint32_t __u32; -typedef uint16_t __u16; -typedef unsigned char __u8; +#include <asm/types.h> /* Big exception to the "don't include kernel headers into userspace, which * even potentially has different endianness and word sizes, since @@ -290,6 +288,14 @@ static int do_serio_entry(const char *filename, return 1; } +/* looks like: "acpi:ACPI0003 or acpi:PNP0C0B" or "acpi:LNXVIDEO" */ +static int do_acpi_entry(const char *filename, + struct acpi_device_id *id, char *alias) +{ + sprintf(alias, "acpi*:%s:", id->id); + return 1; +} + /* looks like: "pnp:dD" */ static int do_pnp_entry(const char *filename, struct pnp_device_id *id, char *alias) @@ -567,6 +573,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info, do_table(symval, sym->st_size, sizeof(struct serio_device_id), "serio", do_serio_entry, mod); + else if (sym_is(symname, "__mod_acpi_device_table")) + do_table(symval, sym->st_size, + sizeof(struct acpi_device_id), "acpi", + do_acpi_entry, mod); else if (sym_is(symname, "__mod_pnp_device_table")) do_table(symval, sym->st_size, sizeof(struct pnp_device_id), "pnp", |