diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-08-14 06:19:59 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-08-14 06:19:59 -0400 |
| commit | 8d7ccaa545490cdffdfaff0842436a8dd85cf47b (patch) | |
| tree | 8129b5907161bc6ae26deb3645ce1e280c5e1f51 /scripts/kconfig | |
| parent | b2139aa0eec330c711c5a279db361e5ef1178e78 (diff) | |
| parent | 30a2f3c60a84092c8084dfe788b710f8d0768cd4 (diff) | |
Merge commit 'v2.6.27-rc3' into x86/prototypes
Conflicts:
include/asm-x86/dma-mapping.h
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'scripts/kconfig')
| -rw-r--r-- | scripts/kconfig/conf.c | 159 | ||||
| -rw-r--r-- | scripts/kconfig/confdata.c | 78 | ||||
| -rw-r--r-- | scripts/kconfig/lex.zconf.c_shipped | 86 | ||||
| -rw-r--r-- | scripts/kconfig/lkc.h | 9 | ||||
| -rw-r--r-- | scripts/kconfig/zconf.l | 1 |
5 files changed, 222 insertions, 111 deletions
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c index fda63136ae68..36b5eedcdc75 100644 --- a/scripts/kconfig/conf.c +++ b/scripts/kconfig/conf.c | |||
| @@ -76,7 +76,6 @@ static void check_stdin(void) | |||
| 76 | static int conf_askvalue(struct symbol *sym, const char *def) | 76 | static int conf_askvalue(struct symbol *sym, const char *def) |
| 77 | { | 77 | { |
| 78 | enum symbol_type type = sym_get_type(sym); | 78 | enum symbol_type type = sym_get_type(sym); |
| 79 | tristate val; | ||
| 80 | 79 | ||
| 81 | if (!sym_has_value(sym)) | 80 | if (!sym_has_value(sym)) |
| 82 | printf(_("(NEW) ")); | 81 | printf(_("(NEW) ")); |
| @@ -92,15 +91,6 @@ static int conf_askvalue(struct symbol *sym, const char *def) | |||
| 92 | } | 91 | } |
| 93 | 92 | ||
| 94 | switch (input_mode) { | 93 | switch (input_mode) { |
| 95 | case set_no: | ||
| 96 | case set_mod: | ||
| 97 | case set_yes: | ||
| 98 | case set_random: | ||
| 99 | if (sym_has_value(sym)) { | ||
| 100 | printf("%s\n", def); | ||
| 101 | return 0; | ||
| 102 | } | ||
| 103 | break; | ||
| 104 | case ask_new: | 94 | case ask_new: |
| 105 | case ask_silent: | 95 | case ask_silent: |
| 106 | if (sym_has_value(sym)) { | 96 | if (sym_has_value(sym)) { |
| @@ -112,9 +102,6 @@ static int conf_askvalue(struct symbol *sym, const char *def) | |||
| 112 | fflush(stdout); | 102 | fflush(stdout); |
| 113 | fgets(line, 128, stdin); | 103 | fgets(line, 128, stdin); |
| 114 | return 1; | 104 | return 1; |
| 115 | case set_default: | ||
| 116 | printf("%s\n", def); | ||
| 117 | return 1; | ||
| 118 | default: | 105 | default: |
| 119 | break; | 106 | break; |
| 120 | } | 107 | } |
| @@ -128,52 +115,6 @@ static int conf_askvalue(struct symbol *sym, const char *def) | |||
| 128 | default: | 115 | default: |
| 129 | ; | 116 | ; |
| 130 | } | 117 | } |
| 131 | switch (input_mode) { | ||
| 132 | case set_yes: | ||
| 133 | if (sym_tristate_within_range(sym, yes)) { | ||
| 134 | line[0] = 'y'; | ||
| 135 | line[1] = '\n'; | ||
| 136 | line[2] = 0; | ||
| 137 | break; | ||
| 138 | } | ||
| 139 | case set_mod: | ||
| 140 | if (type == S_TRISTATE) { | ||
| 141 | if (sym_tristate_within_range(sym, mod)) { | ||
| 142 | line[0] = 'm'; | ||
| 143 | line[1] = '\n'; | ||
| 144 | line[2] = 0; | ||
| 145 | break; | ||
| 146 | } | ||
| 147 | } else { | ||
| 148 | if (sym_tristate_within_range(sym, yes)) { | ||
| 149 | line[0] = 'y'; | ||
| 150 | line[1] = '\n'; | ||
| 151 | line[2] = 0; | ||
| 152 | break; | ||
| 153 | } | ||
| 154 | } | ||
| 155 | case set_no: | ||
| 156 | if (sym_tristate_within_range(sym, no)) { | ||
| 157 | line[0] = 'n'; | ||
| 158 | line[1] = '\n'; | ||
| 159 | line[2] = 0; | ||
| 160 | break; | ||
| 161 | } | ||
| 162 | case set_random: | ||
| 163 | do { | ||
| 164 | val = (tristate)(rand() % 3); | ||
| 165 | } while (!sym_tristate_within_range(sym, val)); | ||
| 166 | switch (val) { | ||
| 167 | case no: line[0] = 'n'; break; | ||
| 168 | case mod: line[0] = 'm'; break; | ||
| 169 | case yes: line[0] = 'y'; break; | ||
| 170 | } | ||
| 171 | line[1] = '\n'; | ||
| 172 | line[2] = 0; | ||
| 173 | break; | ||
| 174 | default: | ||
| 175 | break; | ||
| 176 | } | ||
| 177 | printf("%s", line); | 118 | printf("%s", line); |
| 178 | return 1; | 119 | return 1; |
| 179 | } | 120 | } |
| @@ -374,15 +315,7 @@ static int conf_choice(struct menu *menu) | |||
| 374 | else | 315 | else |
| 375 | continue; | 316 | continue; |
| 376 | break; | 317 | break; |
| 377 | case set_random: | 318 | default: |
| 378 | if (is_new) | ||
| 379 | def = (rand() % cnt) + 1; | ||
| 380 | case set_default: | ||
| 381 | case set_yes: | ||
| 382 | case set_mod: | ||
| 383 | case set_no: | ||
| 384 | cnt = def; | ||
| 385 | printf("%d\n", cnt); | ||
| 386 | break; | 319 | break; |
| 387 | } | 320 | } |
| 388 | 321 | ||
| @@ -494,6 +427,43 @@ static void check_conf(struct menu *menu) | |||
| 494 | check_conf(child); | 427 | check_conf(child); |
| 495 | } | 428 | } |
| 496 | 429 | ||
| 430 | static void conf_do_update(void) | ||
| 431 | { | ||
| 432 | /* Update until a loop caused no more changes */ | ||
| 433 | do { | ||
| 434 | conf_cnt = 0; | ||
| 435 | check_conf(&rootmenu); | ||
| 436 | } while (conf_cnt); | ||
| 437 | } | ||
| 438 | |||
| 439 | static int conf_silent_update(void) | ||
| 440 | { | ||
| 441 | const char *name; | ||
| 442 | |||
| 443 | if (conf_get_changed()) { | ||
| 444 | name = getenv("KCONFIG_NOSILENTUPDATE"); | ||
| 445 | if (name && *name) { | ||
| 446 | fprintf(stderr, | ||
| 447 | _("\n*** Kernel configuration requires explicit update.\n\n")); | ||
| 448 | return 1; | ||
| 449 | } | ||
| 450 | conf_do_update(); | ||
| 451 | } | ||
| 452 | return 0; | ||
| 453 | } | ||
| 454 | |||
| 455 | static int conf_update(void) | ||
| 456 | { | ||
| 457 | rootEntry = &rootmenu; | ||
| 458 | conf(&rootmenu); | ||
| 459 | if (input_mode == ask_all) { | ||
| 460 | input_mode = ask_silent; | ||
| 461 | valid_stdin = 1; | ||
| 462 | } | ||
| 463 | conf_do_update(); | ||
| 464 | return 0; | ||
| 465 | } | ||
| 466 | |||
| 497 | int main(int ac, char **av) | 467 | int main(int ac, char **av) |
| 498 | { | 468 | { |
| 499 | int opt; | 469 | int opt; |
| @@ -599,36 +569,43 @@ int main(int ac, char **av) | |||
| 599 | default: | 569 | default: |
| 600 | break; | 570 | break; |
| 601 | } | 571 | } |
| 572 | switch (input_mode) { | ||
| 573 | case set_no: | ||
| 574 | conf_set_all_new_symbols(def_no); | ||
| 575 | break; | ||
| 576 | case set_yes: | ||
| 577 | conf_set_all_new_symbols(def_yes); | ||
| 578 | break; | ||
| 579 | case set_mod: | ||
| 580 | conf_set_all_new_symbols(def_mod); | ||
| 581 | break; | ||
| 582 | case set_random: | ||
| 583 | conf_set_all_new_symbols(def_random); | ||
| 584 | break; | ||
| 585 | case set_default: | ||
| 586 | conf_set_all_new_symbols(def_default); | ||
| 587 | break; | ||
| 588 | case ask_silent: | ||
| 589 | case ask_new: | ||
| 590 | if (conf_silent_update()) | ||
| 591 | exit(1); | ||
| 592 | break; | ||
| 593 | case ask_all: | ||
| 594 | if (conf_update()) | ||
| 595 | exit(1); | ||
| 596 | break; | ||
| 597 | } | ||
| 602 | 598 | ||
| 603 | if (input_mode != ask_silent) { | ||
| 604 | rootEntry = &rootmenu; | ||
| 605 | conf(&rootmenu); | ||
| 606 | if (input_mode == ask_all) { | ||
| 607 | input_mode = ask_silent; | ||
| 608 | valid_stdin = 1; | ||
| 609 | } | ||
| 610 | } else if (conf_get_changed()) { | ||
| 611 | name = getenv("KCONFIG_NOSILENTUPDATE"); | ||
| 612 | if (name && *name) { | ||
| 613 | fprintf(stderr, _("\n*** Kernel configuration requires explicit update.\n\n")); | ||
| 614 | return 1; | ||
| 615 | } | ||
| 616 | } else | ||
| 617 | goto skip_check; | ||
| 618 | |||
| 619 | do { | ||
| 620 | conf_cnt = 0; | ||
| 621 | check_conf(&rootmenu); | ||
| 622 | } while (conf_cnt); | ||
| 623 | if (conf_write(NULL)) { | 599 | if (conf_write(NULL)) { |
| 624 | fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); | 600 | fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); |
| 625 | return 1; | 601 | exit(1); |
| 626 | } | 602 | } |
| 627 | skip_check: | 603 | /* ask_silent is used during the build so we shall update autoconf. |
| 604 | * All other commands are only used to generate a config. | ||
| 605 | */ | ||
| 628 | if (input_mode == ask_silent && conf_write_autoconf()) { | 606 | if (input_mode == ask_silent && conf_write_autoconf()) { |
| 629 | fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); | 607 | fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); |
| 630 | return 1; | 608 | return 1; |
| 631 | } | 609 | } |
| 632 | |||
| 633 | return 0; | 610 | return 0; |
| 634 | } | 611 | } |
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index ee5fe943d58d..df6a188b9930 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c | |||
| @@ -222,10 +222,8 @@ load: | |||
| 222 | continue; | 222 | continue; |
| 223 | if (def == S_DEF_USER) { | 223 | if (def == S_DEF_USER) { |
| 224 | sym = sym_find(line + 9); | 224 | sym = sym_find(line + 9); |
| 225 | if (!sym) { | 225 | if (!sym) |
| 226 | conf_warning("trying to assign nonexistent symbol %s", line + 9); | ||
| 227 | break; | 226 | break; |
| 228 | } | ||
| 229 | } else { | 227 | } else { |
| 230 | sym = sym_lookup(line + 9, 0); | 228 | sym = sym_lookup(line + 9, 0); |
| 231 | if (sym->type == S_UNKNOWN) | 229 | if (sym->type == S_UNKNOWN) |
| @@ -261,10 +259,8 @@ load: | |||
| 261 | } | 259 | } |
| 262 | if (def == S_DEF_USER) { | 260 | if (def == S_DEF_USER) { |
| 263 | sym = sym_find(line + 7); | 261 | sym = sym_find(line + 7); |
| 264 | if (!sym) { | 262 | if (!sym) |
| 265 | conf_warning("trying to assign nonexistent symbol %s", line + 7); | ||
| 266 | break; | 263 | break; |
| 267 | } | ||
| 268 | } else { | 264 | } else { |
| 269 | sym = sym_lookup(line + 7, 0); | 265 | sym = sym_lookup(line + 7, 0); |
| 270 | if (sym->type == S_UNKNOWN) | 266 | if (sym->type == S_UNKNOWN) |
| @@ -812,3 +808,73 @@ void conf_set_changed_callback(void (*fn)(void)) | |||
| 812 | { | 808 | { |
| 813 | conf_changed_callback = fn; | 809 | conf_changed_callback = fn; |
| 814 | } | 810 | } |
| 811 | |||
| 812 | |||
| 813 | void conf_set_all_new_symbols(enum conf_def_mode mode) | ||
| 814 | { | ||
| 815 | struct symbol *sym, *csym; | ||
| 816 | struct property *prop; | ||
| 817 | struct expr *e; | ||
| 818 | int i, cnt, def; | ||
| 819 | |||
| 820 | for_all_symbols(i, sym) { | ||
| 821 | if (sym_has_value(sym)) | ||
| 822 | continue; | ||
| 823 | switch (sym_get_type(sym)) { | ||
| 824 | case S_BOOLEAN: | ||
| 825 | case S_TRISTATE: | ||
| 826 | switch (mode) { | ||
| 827 | case def_yes: | ||
| 828 | sym->def[S_DEF_USER].tri = yes; | ||
| 829 | break; | ||
| 830 | case def_mod: | ||
| 831 | sym->def[S_DEF_USER].tri = mod; | ||
| 832 | break; | ||
| 833 | case def_no: | ||
| 834 | sym->def[S_DEF_USER].tri = no; | ||
| 835 | break; | ||
| 836 | case def_random: | ||
| 837 | sym->def[S_DEF_USER].tri = (tristate)(rand() % 3); | ||
| 838 | break; | ||
| 839 | default: | ||
| 840 | continue; | ||
| 841 | } | ||
| 842 | if (!sym_is_choice(sym) || mode != def_random) | ||
| 843 | sym->flags |= SYMBOL_DEF_USER; | ||
| 844 | break; | ||
| 845 | default: | ||
| 846 | break; | ||
| 847 | } | ||
| 848 | |||
| 849 | } | ||
| 850 | |||
| 851 | if (modules_sym) | ||
| 852 | sym_calc_value(modules_sym); | ||
| 853 | |||
| 854 | if (mode != def_random) | ||
| 855 | return; | ||
| 856 | |||
| 857 | for_all_symbols(i, csym) { | ||
| 858 | if (sym_has_value(csym) || !sym_is_choice(csym)) | ||
| 859 | continue; | ||
| 860 | |||
| 861 | sym_calc_value(csym); | ||
| 862 | prop = sym_get_choice_prop(csym); | ||
| 863 | def = -1; | ||
| 864 | while (1) { | ||
| 865 | cnt = 0; | ||
| 866 | expr_list_for_each_sym(prop->expr, e, sym) { | ||
| 867 | if (sym->visible == no) | ||
| 868 | continue; | ||
| 869 | if (def == cnt++) { | ||
| 870 | csym->def[S_DEF_USER].val = sym; | ||
| 871 | break; | ||
| 872 | } | ||
| 873 | } | ||
| 874 | if (def >= 0 || cnt < 2) | ||
| 875 | break; | ||
| 876 | def = (rand() % cnt) + 1; | ||
| 877 | } | ||
| 878 | csym->flags |= SYMBOL_DEF_USER; | ||
| 879 | } | ||
| 880 | } | ||
diff --git a/scripts/kconfig/lex.zconf.c_shipped b/scripts/kconfig/lex.zconf.c_shipped index 6a61cee4a32c..7342ce0a7780 100644 --- a/scripts/kconfig/lex.zconf.c_shipped +++ b/scripts/kconfig/lex.zconf.c_shipped | |||
| @@ -5,10 +5,29 @@ | |||
| 5 | 5 | ||
| 6 | /* A lexical scanner generated by flex */ | 6 | /* A lexical scanner generated by flex */ |
| 7 | 7 | ||
| 8 | #define yy_create_buffer zconf_create_buffer | ||
| 9 | #define yy_delete_buffer zconf_delete_buffer | ||
| 10 | #define yy_flex_debug zconf_flex_debug | ||
| 11 | #define yy_init_buffer zconf_init_buffer | ||
| 12 | #define yy_flush_buffer zconf_flush_buffer | ||
| 13 | #define yy_load_buffer_state zconf_load_buffer_state | ||
| 14 | #define yy_switch_to_buffer zconf_switch_to_buffer | ||
| 15 | #define yyin zconfin | ||
| 16 | #define yyleng zconfleng | ||
| 17 | #define yylex zconflex | ||
| 18 | #define yylineno zconflineno | ||
| 19 | #define yyout zconfout | ||
| 20 | #define yyrestart zconfrestart | ||
| 21 | #define yytext zconftext | ||
| 22 | #define yywrap zconfwrap | ||
| 23 | #define yyalloc zconfalloc | ||
| 24 | #define yyrealloc zconfrealloc | ||
| 25 | #define yyfree zconffree | ||
| 26 | |||
| 8 | #define FLEX_SCANNER | 27 | #define FLEX_SCANNER |
| 9 | #define YY_FLEX_MAJOR_VERSION 2 | 28 | #define YY_FLEX_MAJOR_VERSION 2 |
| 10 | #define YY_FLEX_MINOR_VERSION 5 | 29 | #define YY_FLEX_MINOR_VERSION 5 |
| 11 | #define YY_FLEX_SUBMINOR_VERSION 33 | 30 | #define YY_FLEX_SUBMINOR_VERSION 35 |
| 12 | #if YY_FLEX_SUBMINOR_VERSION > 0 | 31 | #if YY_FLEX_SUBMINOR_VERSION > 0 |
| 13 | #define FLEX_BETA | 32 | #define FLEX_BETA |
| 14 | #endif | 33 | #endif |
| @@ -30,7 +49,7 @@ | |||
| 30 | 49 | ||
| 31 | /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ | 50 | /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ |
| 32 | 51 | ||
| 33 | #if __STDC_VERSION__ >= 199901L | 52 | #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L |
| 34 | 53 | ||
| 35 | /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, | 54 | /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, |
| 36 | * if you want the limit (max/min) macros for int types. | 55 | * if you want the limit (max/min) macros for int types. |
| @@ -53,7 +72,6 @@ typedef int flex_int32_t; | |||
| 53 | typedef unsigned char flex_uint8_t; | 72 | typedef unsigned char flex_uint8_t; |
| 54 | typedef unsigned short int flex_uint16_t; | 73 | typedef unsigned short int flex_uint16_t; |
| 55 | typedef unsigned int flex_uint32_t; | 74 | typedef unsigned int flex_uint32_t; |
| 56 | #endif /* ! C99 */ | ||
| 57 | 75 | ||
| 58 | /* Limits of integral types. */ | 76 | /* Limits of integral types. */ |
| 59 | #ifndef INT8_MIN | 77 | #ifndef INT8_MIN |
| @@ -84,6 +102,8 @@ typedef unsigned int flex_uint32_t; | |||
| 84 | #define UINT32_MAX (4294967295U) | 102 | #define UINT32_MAX (4294967295U) |
| 85 | #endif | 103 | #endif |
| 86 | 104 | ||
| 105 | #endif /* ! C99 */ | ||
| 106 | |||
| 87 | #endif /* ! FLEXINT_H */ | 107 | #endif /* ! FLEXINT_H */ |
| 88 | 108 | ||
| 89 | #ifdef __cplusplus | 109 | #ifdef __cplusplus |
| @@ -93,11 +113,12 @@ typedef unsigned int flex_uint32_t; | |||
| 93 | 113 | ||
| 94 | #else /* ! __cplusplus */ | 114 | #else /* ! __cplusplus */ |
| 95 | 115 | ||
| 96 | #if __STDC__ | 116 | /* C99 requires __STDC__ to be defined as 1. */ |
| 117 | #if defined (__STDC__) | ||
| 97 | 118 | ||
| 98 | #define YY_USE_CONST | 119 | #define YY_USE_CONST |
| 99 | 120 | ||
| 100 | #endif /* __STDC__ */ | 121 | #endif /* defined (__STDC__) */ |
| 101 | #endif /* ! __cplusplus */ | 122 | #endif /* ! __cplusplus */ |
| 102 | 123 | ||
| 103 | #ifdef YY_USE_CONST | 124 | #ifdef YY_USE_CONST |
| @@ -177,14 +198,9 @@ extern FILE *zconfin, *zconfout; | |||
| 177 | 198 | ||
| 178 | #define unput(c) yyunput( c, (yytext_ptr) ) | 199 | #define unput(c) yyunput( c, (yytext_ptr) ) |
| 179 | 200 | ||
| 180 | /* The following is because we cannot portably get our hands on size_t | ||
| 181 | * (without autoconf's help, which isn't available because we want | ||
| 182 | * flex-generated scanners to compile on their own). | ||
| 183 | */ | ||
| 184 | |||
| 185 | #ifndef YY_TYPEDEF_YY_SIZE_T | 201 | #ifndef YY_TYPEDEF_YY_SIZE_T |
| 186 | #define YY_TYPEDEF_YY_SIZE_T | 202 | #define YY_TYPEDEF_YY_SIZE_T |
| 187 | typedef unsigned int yy_size_t; | 203 | typedef size_t yy_size_t; |
| 188 | #endif | 204 | #endif |
| 189 | 205 | ||
| 190 | #ifndef YY_STRUCT_YY_BUFFER_STATE | 206 | #ifndef YY_STRUCT_YY_BUFFER_STATE |
| @@ -335,7 +351,7 @@ void zconffree (void * ); | |||
| 335 | 351 | ||
| 336 | /* Begin user sect3 */ | 352 | /* Begin user sect3 */ |
| 337 | 353 | ||
| 338 | #define zconfwrap() 1 | 354 | #define zconfwrap(n) 1 |
| 339 | #define YY_SKIP_YYWRAP | 355 | #define YY_SKIP_YYWRAP |
| 340 | 356 | ||
| 341 | typedef unsigned char YY_CHAR; | 357 | typedef unsigned char YY_CHAR; |
| @@ -748,6 +764,7 @@ int zconf_flex_debug = 0; | |||
| 748 | #define YY_MORE_ADJ 0 | 764 | #define YY_MORE_ADJ 0 |
| 749 | #define YY_RESTORE_YY_MORE_OFFSET | 765 | #define YY_RESTORE_YY_MORE_OFFSET |
| 750 | char *zconftext; | 766 | char *zconftext; |
| 767 | #define YY_NO_INPUT 1 | ||
| 751 | 768 | ||
| 752 | /* | 769 | /* |
| 753 | * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org> | 770 | * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org> |
| @@ -834,6 +851,35 @@ void alloc_string(const char *str, int size) | |||
| 834 | 851 | ||
| 835 | static int yy_init_globals (void ); | 852 | static int yy_init_globals (void ); |
| 836 | 853 | ||
| 854 | /* Accessor methods to globals. | ||
| 855 | These are made visible to non-reentrant scanners for convenience. */ | ||
| 856 | |||
| 857 | int zconflex_destroy (void ); | ||
| 858 | |||
| 859 | int zconfget_debug (void ); | ||
| 860 | |||
| 861 | void zconfset_debug (int debug_flag ); | ||
| 862 | |||
| 863 | YY_EXTRA_TYPE zconfget_extra (void ); | ||
| 864 | |||
| 865 | void zconfset_extra (YY_EXTRA_TYPE user_defined ); | ||
| 866 | |||
| 867 | FILE *zconfget_in (void ); | ||
| 868 | |||
| 869 | void zconfset_in (FILE * in_str ); | ||
| 870 | |||
| 871 | FILE *zconfget_out (void ); | ||
| 872 | |||
| 873 | void zconfset_out (FILE * out_str ); | ||
| 874 | |||
| 875 | int zconfget_leng (void ); | ||
| 876 | |||
| 877 | char *zconfget_text (void ); | ||
| 878 | |||
| 879 | int zconfget_lineno (void ); | ||
| 880 | |||
| 881 | void zconfset_lineno (int line_number ); | ||
| 882 | |||
| 837 | /* Macros after this point can all be overridden by user definitions in | 883 | /* Macros after this point can all be overridden by user definitions in |
| 838 | * section 1. | 884 | * section 1. |
| 839 | */ | 885 | */ |
| @@ -876,7 +922,7 @@ static int input (void ); | |||
| 876 | /* This used to be an fputs(), but since the string might contain NUL's, | 922 | /* This used to be an fputs(), but since the string might contain NUL's, |
| 877 | * we now use fwrite(). | 923 | * we now use fwrite(). |
| 878 | */ | 924 | */ |
| 879 | #define ECHO (void) fwrite( zconftext, zconfleng, 1, zconfout ) | 925 | #define ECHO fwrite( zconftext, zconfleng, 1, zconfout ) |
| 880 | #endif | 926 | #endif |
| 881 | 927 | ||
| 882 | /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, | 928 | /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, |
| @@ -1540,6 +1586,14 @@ static int yy_get_next_buffer (void) | |||
| 1540 | else | 1586 | else |
| 1541 | ret_val = EOB_ACT_CONTINUE_SCAN; | 1587 | ret_val = EOB_ACT_CONTINUE_SCAN; |
| 1542 | 1588 | ||
| 1589 | if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { | ||
| 1590 | /* Extend the array by 50%, plus the number we really need. */ | ||
| 1591 | yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); | ||
| 1592 | YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); | ||
| 1593 | if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) | ||
| 1594 | YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); | ||
| 1595 | } | ||
| 1596 | |||
| 1543 | (yy_n_chars) += number_to_move; | 1597 | (yy_n_chars) += number_to_move; |
| 1544 | YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; | 1598 | YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; |
| 1545 | YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; | 1599 | YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; |
| @@ -1926,7 +1980,9 @@ static void zconfensure_buffer_stack (void) | |||
| 1926 | (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc | 1980 | (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc |
| 1927 | (num_to_alloc * sizeof(struct yy_buffer_state*) | 1981 | (num_to_alloc * sizeof(struct yy_buffer_state*) |
| 1928 | ); | 1982 | ); |
| 1929 | 1983 | if ( ! (yy_buffer_stack) ) | |
| 1984 | YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" ); | ||
| 1985 | |||
| 1930 | memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); | 1986 | memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); |
| 1931 | 1987 | ||
| 1932 | (yy_buffer_stack_max) = num_to_alloc; | 1988 | (yy_buffer_stack_max) = num_to_alloc; |
| @@ -1944,6 +2000,8 @@ static void zconfensure_buffer_stack (void) | |||
| 1944 | ((yy_buffer_stack), | 2000 | ((yy_buffer_stack), |
| 1945 | num_to_alloc * sizeof(struct yy_buffer_state*) | 2001 | num_to_alloc * sizeof(struct yy_buffer_state*) |
| 1946 | ); | 2002 | ); |
| 2003 | if ( ! (yy_buffer_stack) ) | ||
| 2004 | YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" ); | ||
| 1947 | 2005 | ||
| 1948 | /* zero only the new slots.*/ | 2006 | /* zero only the new slots.*/ |
| 1949 | memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); | 2007 | memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); |
diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h index 96521cb087ec..4a9af6f7886b 100644 --- a/scripts/kconfig/lkc.h +++ b/scripts/kconfig/lkc.h | |||
| @@ -42,6 +42,14 @@ extern "C" { | |||
| 42 | #define TF_PARAM 0x0002 | 42 | #define TF_PARAM 0x0002 |
| 43 | #define TF_OPTION 0x0004 | 43 | #define TF_OPTION 0x0004 |
| 44 | 44 | ||
| 45 | enum conf_def_mode { | ||
| 46 | def_default, | ||
| 47 | def_yes, | ||
| 48 | def_mod, | ||
| 49 | def_no, | ||
| 50 | def_random | ||
| 51 | }; | ||
| 52 | |||
| 45 | #define T_OPT_MODULES 1 | 53 | #define T_OPT_MODULES 1 |
| 46 | #define T_OPT_DEFCONFIG_LIST 2 | 54 | #define T_OPT_DEFCONFIG_LIST 2 |
| 47 | #define T_OPT_ENV 3 | 55 | #define T_OPT_ENV 3 |
| @@ -69,6 +77,7 @@ const char *conf_get_configname(void); | |||
| 69 | char *conf_get_default_confname(void); | 77 | char *conf_get_default_confname(void); |
| 70 | void sym_set_change_count(int count); | 78 | void sym_set_change_count(int count); |
| 71 | void sym_add_change_count(int count); | 79 | void sym_add_change_count(int count); |
| 80 | void conf_set_all_new_symbols(enum conf_def_mode mode); | ||
| 72 | 81 | ||
| 73 | /* kconfig_load.c */ | 82 | /* kconfig_load.c */ |
| 74 | void kconfig_load(void); | 83 | void kconfig_load(void); |
diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l index 4cea5c85cd0a..5164ef7ce499 100644 --- a/scripts/kconfig/zconf.l +++ b/scripts/kconfig/zconf.l | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | %option backup nostdinit noyywrap never-interactive full ecs | 1 | %option backup nostdinit noyywrap never-interactive full ecs |
| 2 | %option 8bit backup nodefault perf-report perf-report | 2 | %option 8bit backup nodefault perf-report perf-report |
| 3 | %option noinput | ||
| 3 | %x COMMAND HELP STRING PARAM | 4 | %x COMMAND HELP STRING PARAM |
| 4 | %{ | 5 | %{ |
| 5 | /* | 6 | /* |
