1 | /*␊ |
2 | * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>␊ |
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 */␊ |
197 | |