From 442ff702233287df3f50ec3a7fd0a73d7367cf5a Mon Sep 17 00:00:00 2001 From: Jean-Christophe Dubois Date: Sat, 25 Jun 2005 14:55:43 -0700 Subject: [PATCH] mconf.c needs locale.h This is failing on my cross-compilation environment (From a solaris system) using gcc-3.4.1 (as the compiler can't find a prototype for the setlocale() function). Signed-off-by: Jean-Christophe Dubois Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- scripts/kconfig/mconf.c | 1 + 1 file changed, 1 insertion(+) (limited to 'scripts') diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c index e5db10ca956..98039bf721f 100644 --- a/scripts/kconfig/mconf.c +++ b/scripts/kconfig/mconf.c @@ -20,6 +20,7 @@ #include #include #include +#include #define LKC_DIRECT_LINK #include "lkc.h" -- cgit v1.2.3 From 48b9d03c5f20a0585bb6f7d8c4abad3661df5d75 Mon Sep 17 00:00:00 2001 From: "J.A. Magallon" Date: Sat, 25 Jun 2005 14:59:22 -0700 Subject: [PATCH] Kill signed chars scripts/ is full of mismatches between char* params an signed char* arguments, and viceversa. gcc4 now complaints loud about this. Patch below deletes all those 'signed'. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- scripts/basic/docproc.c | 14 +++++++------- scripts/basic/fixdep.c | 20 ++++++++++---------- scripts/basic/split-include.c | 2 +- scripts/kconfig/conf.c | 6 +++--- scripts/kconfig/confdata.c | 4 ++-- scripts/kconfig/mconf.c | 4 ++-- 6 files changed, 25 insertions(+), 25 deletions(-) (limited to 'scripts') diff --git a/scripts/basic/docproc.c b/scripts/basic/docproc.c index 8ca7ecdb68f..cb02baa6325 100644 --- a/scripts/basic/docproc.c +++ b/scripts/basic/docproc.c @@ -52,7 +52,7 @@ FILEONLY *internalfunctions; FILEONLY *externalfunctions; FILEONLY *symbolsonly; -typedef void FILELINE(char * file, signed char * line); +typedef void FILELINE(char * file, char * line); FILELINE * singlefunctions; FILELINE * entity_system; @@ -148,9 +148,9 @@ struct symfile * filename_exist(char * filename) * Files are separated by tabs. */ void adddep(char * file) { printf("\t%s", file); } -void adddep2(char * file, signed char * line) { line = line; adddep(file); } +void adddep2(char * file, char * line) { line = line; adddep(file); } void noaction(char * line) { line = line; } -void noaction2(char * file, signed char * line) { file = file; line = line; } +void noaction2(char * file, char * line) { file = file; line = line; } /* Echo the line without further action */ void printline(char * line) { printf("%s", line); } @@ -179,8 +179,8 @@ void find_export_symbols(char * filename) perror(real_filename); } while(fgets(line, MAXLINESZ, fp)) { - signed char *p; - signed char *e; + char *p; + char *e; if (((p = strstr(line, "EXPORT_SYMBOL_GPL")) != 0) || ((p = strstr(line, "EXPORT_SYMBOL")) != 0)) { /* Skip EXPORT_SYMBOL{_GPL} */ @@ -253,7 +253,7 @@ void extfunc(char * filename) { docfunctions(filename, FUNCTION); } * Call kernel-doc with the following parameters: * kernel-doc -docbook -function function1 [-function function2] */ -void singfunc(char * filename, signed char * line) +void singfunc(char * filename, char * line) { char *vec[200]; /* Enough for specific functions */ int i, idx = 0; @@ -290,7 +290,7 @@ void singfunc(char * filename, signed char * line) void parse_file(FILE *infile) { char line[MAXLINESZ]; - signed char * s; + char * s; while(fgets(line, MAXLINESZ, infile)) { if (line[0] == '!') { s = line + 2; diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c index 7f42c5d8a5a..0b61bea869f 100644 --- a/scripts/basic/fixdep.c +++ b/scripts/basic/fixdep.c @@ -212,23 +212,23 @@ void use_config(char *m, int slen) if (*p == '_') *p = '/'; else - *p = tolower((unsigned char)*p); + *p = tolower((int)*p); } printf(" $(wildcard include/config/%s.h) \\\n", s); } -void parse_config_file(signed char *map, size_t len) +void parse_config_file(char *map, size_t len) { int *end = (int *) (map + len); /* start at +1, so that p can never be < map */ int *m = (int *) map + 1; - signed char *p, *q; + char *p, *q; for (; m < end; m++) { - if (*m == INT_CONF) { p = (signed char *) m ; goto conf; } - if (*m == INT_ONFI) { p = (signed char *) m-1; goto conf; } - if (*m == INT_NFIG) { p = (signed char *) m-2; goto conf; } - if (*m == INT_FIG_) { p = (signed char *) m-3; goto conf; } + if (*m == INT_CONF) { p = (char *) m ; goto conf; } + if (*m == INT_ONFI) { p = (char *) m-1; goto conf; } + if (*m == INT_NFIG) { p = (char *) m-2; goto conf; } + if (*m == INT_FIG_) { p = (char *) m-3; goto conf; } continue; conf: if (p > map + len - 7) @@ -291,9 +291,9 @@ void do_config_file(char *filename) void parse_dep_file(void *map, size_t len) { - signed char *m = map; - signed char *end = m + len; - signed char *p; + char *m = map; + char *end = m + len; + char *p; char s[PATH_MAX]; p = strchr(m, ':'); diff --git a/scripts/basic/split-include.c b/scripts/basic/split-include.c index 60fc4d8ebaa..459c45276cb 100644 --- a/scripts/basic/split-include.c +++ b/scripts/basic/split-include.c @@ -104,7 +104,7 @@ int main(int argc, const char * argv []) /* Read config lines. */ while (fgets(line, buffer_size, fp_config)) { - const signed char * str_config; + const char * str_config; int is_same; int itarget; diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c index 70e7264c694..bc20cab9d0d 100644 --- a/scripts/kconfig/conf.c +++ b/scripts/kconfig/conf.c @@ -31,14 +31,14 @@ char *defconfig_file; static int indent = 1; static int valid_stdin = 1; static int conf_cnt; -static signed char line[128]; +static char line[128]; static struct menu *rootEntry; static char nohelp_text[] = N_("Sorry, no help available for this option yet.\n"); -static void strip(signed char *str) +static void strip(char *str) { - signed char *p = str; + char *p = str; int l; while ((isspace(*p))) diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index 2755c459d78..02f670cc6bb 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c @@ -27,10 +27,10 @@ const char *conf_confnames[] = { NULL, }; -static char *conf_expand_value(const signed char *in) +static char *conf_expand_value(const char *in) { struct symbol *sym; - const signed char *src; + const char *src; static char res_value[SYMBOL_MAXLENGTH]; char *dst, name[SYMBOL_MAXLENGTH]; diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c index 98039bf721f..457bec29511 100644 --- a/scripts/kconfig/mconf.c +++ b/scripts/kconfig/mconf.c @@ -255,8 +255,8 @@ search_help[] = N_( " USB$ => find all CONFIG_ symbols ending with USB\n" "\n"); -static signed char buf[4096], *bufptr = buf; -static signed char input_buf[4096]; +static char buf[4096], *bufptr = buf; +static char input_buf[4096]; static char filename[PATH_MAX+1] = ".config"; static char *args[1024], **argptr = args; static int indent; -- cgit v1.2.3 From 90829cfe1df2466c98a831f6c44f71026665cec1 Mon Sep 17 00:00:00 2001 From: Dominik Brodowski Date: Mon, 27 Jun 2005 16:28:12 -0700 Subject: [PATCH] pcmcia: file2alias Create PCMCIA entries in modules.alias Signed-off-by: Dominik Brodowski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- scripts/mod/file2alias.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'scripts') diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index 32197efe67e..908bff6d1ee 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c @@ -287,6 +287,42 @@ static int do_pnp_card_entry(const char *filename, return 1; } +/* Looks like: pcmcia:mNcNfNfnNpfnNvaNvbNvcNvdN. */ +static int do_pcmcia_entry(const char *filename, + struct pcmcia_device_id *id, char *alias) +{ + unsigned int i; + + id->manf_id = TO_NATIVE(id->manf_id); + id->card_id = TO_NATIVE(id->card_id); + id->func_id = TO_NATIVE(id->func_id); + id->function = TO_NATIVE(id->function); + id->device_no = TO_NATIVE(id->device_no); + for (i=0; i<4; i++) { + id->prod_id_hash[i] = TO_NATIVE(id->prod_id_hash[i]); + } + + strcpy(alias, "pcmcia:"); + ADD(alias, "m", id->match_flags & PCMCIA_DEV_ID_MATCH_MANF_ID, + id->manf_id); + ADD(alias, "c", id->match_flags & PCMCIA_DEV_ID_MATCH_CARD_ID, + id->card_id); + ADD(alias, "f", id->match_flags & PCMCIA_DEV_ID_MATCH_FUNC_ID, + id->func_id); + ADD(alias, "fn", id->match_flags & PCMCIA_DEV_ID_MATCH_FUNCTION, + id->function); + ADD(alias, "pfn", id->match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO, + id->device_no); + ADD(alias, "pa", id->match_flags & PCMCIA_DEV_ID_MATCH_PROD_ID1, id->prod_id_hash[0]); + ADD(alias, "pb", id->match_flags & PCMCIA_DEV_ID_MATCH_PROD_ID2, id->prod_id_hash[1]); + ADD(alias, "pc", id->match_flags & PCMCIA_DEV_ID_MATCH_PROD_ID3, id->prod_id_hash[2]); + ADD(alias, "pd", id->match_flags & PCMCIA_DEV_ID_MATCH_PROD_ID4, id->prod_id_hash[3]); + + return 1; +} + + + /* Ignore any prefix, eg. v850 prepends _ */ static inline int sym_is(const char *symbol, const char *name) { @@ -362,6 +398,9 @@ void handle_moddevtable(struct module *mod, struct elf_info *info, else if (sym_is(symname, "__mod_pnp_card_device_table")) do_table(symval, sym->st_size, sizeof(struct pnp_card_device_id), do_pnp_card_entry, mod); + else if (sym_is(symname, "__mod_pcmcia_device_table")) + do_table(symval, sym->st_size, sizeof(struct pcmcia_device_id), + do_pcmcia_entry, mod); } /* Now add out buffered information to the generated C source */ -- cgit v1.2.3 From 5e6557722e69840506eb8bc5a1edcdb4e447a917 Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 6 Jul 2005 15:44:41 -0400 Subject: [PATCH] openfirmware: generate device table for userspace This converts the usage of struct of_match to struct of_device_id, similar to pci_device_id. This allows a device table to be generated, which can be parsed by depmod(8) to generate a map file for module loading. In order for hotplug to work with macio devices, patches to module-init-tools and hotplug must be applied. Those patches are available at: ftp://ftp.suse.com/pub/people/jeffm/linux/macio-hotplug/ Signed-off-by: Jeff Mahoney Signed-off-by: Linus Torvalds --- scripts/mod/file2alias.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'scripts') diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index 908bff6d1ee..5180405c1a8 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c @@ -25,6 +25,8 @@ typedef Elf64_Addr kernel_ulong_t; #include #endif +#include + typedef uint32_t __u32; typedef uint16_t __u16; typedef unsigned char __u8; @@ -323,6 +325,22 @@ static int do_pcmcia_entry(const char *filename, +static int do_of_entry (const char *filename, struct of_device_id *of, char *alias) +{ + char *tmp; + sprintf (alias, "of:N%sT%sC%s", + of->name[0] ? of->name : "*", + of->type[0] ? of->type : "*", + of->compatible[0] ? of->compatible : "*"); + + /* Replace all whitespace with underscores */ + for (tmp = alias; tmp && *tmp; tmp++) + if (isspace (*tmp)) + *tmp = '_'; + + return 1; +} + /* Ignore any prefix, eg. v850 prepends _ */ static inline int sym_is(const char *symbol, const char *name) { @@ -401,6 +419,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info, else if (sym_is(symname, "__mod_pcmcia_device_table")) do_table(symval, sym->st_size, sizeof(struct pcmcia_device_id), do_pcmcia_entry, mod); + else if (sym_is(symname, "__mod_of_device_table")) + do_table(symval, sym->st_size, sizeof(struct of_device_id), + do_of_entry, mod); + } /* Now add out buffered information to the generated C source */ -- cgit v1.2.3