|
|
1.1 ! root 1: /* ! 2: * Copyright (C) 2002 Roman Zippel <[email protected]> ! 3: * Released under the terms of the GNU GPL v2.0. ! 4: */ ! 5: ! 6: #ifndef LKC_H ! 7: #define LKC_H ! 8: ! 9: #include "expr.h" ! 10: ! 11: #ifndef KBUILD_NO_NLS ! 12: # include <libintl.h> ! 13: #else ! 14: static inline const char *gettext(const char *txt) { return txt; } ! 15: static inline void textdomain(const char *domainname) {} ! 16: static inline void bindtextdomain(const char *name, const char *dir) {} ! 17: static inline char *bind_textdomain_codeset(const char *dn, char *c) { return c; } ! 18: #endif ! 19: ! 20: #ifdef __cplusplus ! 21: extern "C" { ! 22: #endif ! 23: ! 24: #ifdef LKC_DIRECT_LINK ! 25: #define P(name,type,arg) extern type name arg ! 26: #else ! 27: #include "lkc_defs.h" ! 28: #define P(name,type,arg) extern type (*name ## _p) arg ! 29: #endif ! 30: #include "lkc_proto.h" ! 31: #undef P ! 32: ! 33: #define SRCTREE "srctree" ! 34: ! 35: #ifndef PACKAGE ! 36: #define PACKAGE "linux" ! 37: #endif ! 38: ! 39: #define LOCALEDIR "/usr/share/locale" ! 40: ! 41: #define _(text) gettext(text) ! 42: #define N_(text) (text) ! 43: ! 44: #ifndef CONFIG_ ! 45: #define CONFIG_ "CONFIG_" ! 46: #endif ! 47: ! 48: #define TF_COMMAND 0x0001 ! 49: #define TF_PARAM 0x0002 ! 50: #define TF_OPTION 0x0004 ! 51: ! 52: enum conf_def_mode { ! 53: def_default, ! 54: def_yes, ! 55: def_mod, ! 56: def_no, ! 57: def_random ! 58: }; ! 59: ! 60: #define T_OPT_MODULES 1 ! 61: #define T_OPT_DEFCONFIG_LIST 2 ! 62: #define T_OPT_ENV 3 ! 63: ! 64: struct kconf_id { ! 65: int name; ! 66: int token; ! 67: unsigned int flags; ! 68: enum symbol_type stype; ! 69: }; ! 70: ! 71: #ifdef YYDEBUG ! 72: extern int zconfdebug; ! 73: #endif ! 74: ! 75: int zconfparse(void); ! 76: void zconfdump(FILE *out); ! 77: void zconf_starthelp(void); ! 78: FILE *zconf_fopen(const char *name); ! 79: void zconf_initscan(const char *name); ! 80: void zconf_nextfile(const char *name); ! 81: int zconf_lineno(void); ! 82: const char *zconf_curname(void); ! 83: ! 84: /* conf.c */ ! 85: void xfgets(char *str, int size, FILE *in); ! 86: ! 87: /* confdata.c */ ! 88: const char *conf_get_configname(void); ! 89: const char *conf_get_autoconfig_name(void); ! 90: char *conf_get_default_confname(void); ! 91: void sym_set_change_count(int count); ! 92: void sym_add_change_count(int count); ! 93: void conf_set_all_new_symbols(enum conf_def_mode mode); ! 94: ! 95: /* confdata.c and expr.c */ ! 96: static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out) ! 97: { ! 98: if (fwrite(str, len, count, out) < count) ! 99: fprintf(stderr, "\nError in writing or end of file.\n"); ! 100: } ! 101: ! 102: /* kconfig_load.c */ ! 103: void kconfig_load(void); ! 104: ! 105: /* menu.c */ ! 106: void _menu_init(void); ! 107: void menu_warn(struct menu *menu, const char *fmt, ...); ! 108: struct menu *menu_add_menu(void); ! 109: void menu_end_menu(void); ! 110: void menu_add_entry(struct symbol *sym); ! 111: void menu_end_entry(void); ! 112: void menu_add_dep(struct expr *dep); ! 113: void menu_add_visibility(struct expr *dep); ! 114: struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep); ! 115: struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep); ! 116: void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep); ! 117: void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep); ! 118: void menu_add_option(int token, char *arg); ! 119: void menu_finalize(struct menu *parent); ! 120: void menu_set_type(int type); ! 121: ! 122: /* util.c */ ! 123: struct file *file_lookup(const char *name); ! 124: int file_write_dep(const char *name); ! 125: ! 126: struct gstr { ! 127: size_t len; ! 128: char *s; ! 129: /* ! 130: * when max_width is not zero long lines in string s (if any) get ! 131: * wrapped not to exceed the max_width value ! 132: */ ! 133: int max_width; ! 134: }; ! 135: struct gstr str_new(void); ! 136: struct gstr str_assign(const char *s); ! 137: void str_free(struct gstr *gs); ! 138: void str_append(struct gstr *gs, const char *s); ! 139: void str_printf(struct gstr *gs, const char *fmt, ...); ! 140: const char *str_get(struct gstr *gs); ! 141: ! 142: /* symbol.c */ ! 143: extern struct expr *sym_env_list; ! 144: ! 145: void sym_init(void); ! 146: void sym_clear_all_valid(void); ! 147: void sym_set_all_changed(void); ! 148: void sym_set_changed(struct symbol *sym); ! 149: struct symbol *sym_choice_default(struct symbol *sym); ! 150: const char *sym_get_string_default(struct symbol *sym); ! 151: struct symbol *sym_check_deps(struct symbol *sym); ! 152: struct property *prop_alloc(enum prop_type type, struct symbol *sym); ! 153: struct symbol *prop_get_symbol(struct property *prop); ! 154: struct property *sym_get_env_prop(struct symbol *sym); ! 155: ! 156: static inline tristate sym_get_tristate_value(struct symbol *sym) ! 157: { ! 158: return sym->curr.tri; ! 159: } ! 160: ! 161: ! 162: static inline struct symbol *sym_get_choice_value(struct symbol *sym) ! 163: { ! 164: return (struct symbol *)sym->curr.val; ! 165: } ! 166: ! 167: static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval) ! 168: { ! 169: return sym_set_tristate_value(chval, yes); ! 170: } ! 171: ! 172: static inline bool sym_is_choice(struct symbol *sym) ! 173: { ! 174: return sym->flags & SYMBOL_CHOICE ? true : false; ! 175: } ! 176: ! 177: static inline bool sym_is_choice_value(struct symbol *sym) ! 178: { ! 179: return sym->flags & SYMBOL_CHOICEVAL ? true : false; ! 180: } ! 181: ! 182: static inline bool sym_is_optional(struct symbol *sym) ! 183: { ! 184: return sym->flags & SYMBOL_OPTIONAL ? true : false; ! 185: } ! 186: ! 187: static inline bool sym_has_value(struct symbol *sym) ! 188: { ! 189: return sym->flags & SYMBOL_DEF_USER ? true : false; ! 190: } ! 191: ! 192: #ifdef __cplusplus ! 193: } ! 194: #endif ! 195: ! 196: #endif /* LKC_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.